如何使用与Solr匹配的ngrams

时间:2015-07-20 09:33:23

标签: search solr lucene nlp n-gram

我正在学习solr。我想在Solr中使用<child>/target/generated-resources。例如:

如果文档包含ngrams,则该文档不应返回以下查询:

new york car driver

但它应该返回以下查询

/select?q=york
/select?q=new
/select?q=new car

(它应该将纽约视为一个单词,以获得更好的结果。有些单词序列需要考虑为单个单词。例如: - 纽约,汤姆克鲁斯等。这些单词是预定义的;所有其他单词应该被对待正常)

如何使用Solr搜索实现此目的?

1 个答案:

答案 0 :(得分:1)

第一次尝试应该在“纽约”这样的术语周围加上引号并尝试。

这将是你的第二次尝试。

将标记符从StandardTokenizerFactory更改为KeywordTokenizerFactory

更改reindex数据并再次查询后。

第三个选项是使用StrField类型,它不能进行任何标记化或分析,只会给出完全匹配的结果。

不分析StrField类型,而是逐字索引/存储。

 <fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/>