Solr中的前导通配符多字不起作用

时间:2015-07-01 17:41:01

标签: solrj solr4

我正在尝试在solr中进行多字引导外卡搜索。

Ex:* oogle - 适合我
* oogle地图 - 对我不起作用

您能否为我提供此问题的有效查询和解决方案,

schema.xml中

<field name="abc_name" type="text_app" indexed="true" stored="true"/>
<field name="abc_address" type="text_app" indexed="true" stored="true"/>   <field name="abc_notes" type="text_app" indexed="true" stored="true"/>
<field name="abc_allSearchFields" type="text_app" indexed="true" stored="false" multiValued="true"/>   

<copyField source="abc_*" dest="abc_allSearchFields"/> 

<fieldType name="text_app" class="solr.TextField" positionIncrementGap="100">
    <analyzer type="index">
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
    <analyzer type="query">
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
</fieldType>

在查询中,

  1. q = abc_allSearchFields:“google maps”----将同时获取与谷歌地图匹配的所有结果。适合我。

  2. q = abc_allSearchFields:* ogle ---&gt;将获取包含以 ogle 结尾的单词的所有记录。适合我。

  3. q = abc_allSearchFields:“* gle maps”----这是获取以gle和map分别结束的所有记录单词。但我的要求是将所有包含“* gle maps”的记录合在一起,如“谷歌地图”。

  4. 有人可以帮我解决第三种情况。

1 个答案:

答案 0 :(得分:0)

您需要在相应字段类型的索引分析器链中包含ReversedWildcardFilterFactory才能使其正常工作。

但请注意这个问题: https://issues.apache.org/jira/browse/SOLR-3193