我有一个架构如下
<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>
我的文件将是:
当我进行搜索Koh *它返回3个结果。它接受了。但是当我搜索Koh S *时。它返回零结果。我希望结果只有苏梅岛
答案 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*