搜索Solr:匹配确切的结果Koh S *

时间:2013-11-29 03:44:26

标签: search solr solrnet

我有一个架构如下

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

我的文件将是:

  1. Koh Samui
  2. Koh Chang
  3. Koh Lanta
  4. 当我进行搜索Koh *它返回3个结果。它接受了。但是当我搜索Koh S *时。它返回零结果。我希望结果只有苏梅岛

1 个答案:

答案 0 :(得分:0)

我假设您要使用通配符查询。这取决于您使用的Query Parser。如果您使用的是Standard Query Parser,Dismax或eDismax,则所有这些都不支持通配符查询。

说实话,如果您使用Solr搜索通配符查询,您可能使用错误的工具作为解决方案,您可以使用任何SQL数据库并在where子句中使用“Koh S%”等文本,并且这会给你你想要的。

但无论如何,要在Solr中使用通配符Query,您需要直接使用Lucene查询解析器。为此,请使用以下查询:

http://localhost:8983/solr/core/select?q={!lucene df=text}Koh S*