【问题标题】:sunspot solr attribute substring/wildcard searchessunspot solr 属性子字符串/通配符搜索
【发布时间】:2011-10-27 16:05:11
【问题描述】:

是否可以使用子字符串/通配符/部分字符串匹配来搜索 solr 属性字段(非 solr.TextField 类型)?

例如,如果我有一个 solr.StrField 字段和包含字符串“1234567890”的文档,我希望能够搜索“456”并返回该文档。

据我所知,在这种方法中只能使用 EdgeNGram 等搜索文本字段,但不能搜索属性字段??

【问题讨论】:

    标签: search solr sunspot


    【解决方案1】:

    您可以让部分匹配也适用于字符串以及通配符的文本字段。

    如果您使用的查询解析器支持前导通配符查询,您可以轻松搜索*456*,这应该匹配1234567890。

    但是,EdgeNGram 仅适用于 solr.TextField,因为 solr.strField 不允许向其中添加分析器。
    所以你只能定义类为solr.TextField的字段,并在分析链中有EdgeNGram,这会将索引项分解为部分匹配的瓦片。

    【讨论】:

    • 是否有支持前导通配符的查询解析器?我还没有遇到过。
    • ExtendedDismax 查询解析器支持它。 setAllowLeadingWildcard(true) 被标记为 true。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-14
    • 1970-01-01
    • 2012-07-25
    • 2012-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多