使用SOLR搜索简短的单词

Car*_*ing 6 lucene solr

我正在使用SOLR和NGramTokenizerFactory来帮助创建搜索令牌以获得单词的子串

NGramTokenizer配置的最小字长为3

这意味着我可以搜索例如"unb",然后匹配"难以置信"这个词.

但是我对"I"和"in"等短语有疑问.这些没有被SOLR索引(我怀疑是因为NGramTokenizer),因此我无法搜索它们.

我不想将最小字长减少到1或2,因为这会创建一个巨大的搜索索引.但是我希望SOLR能够包含长度已经低于这个最小值的整个单词.

我怎样才能做到这一点?

/卡斯滕

Luc*_*eni 6

首先,尝试理解为什么你的单词不会被solr使用"分析工具"索引

http://localhost:8080/solr/admin/analysis.jsp
Run Code Online (Sandbox Code Playgroud)

只需输入您要搜索的字段和文本,然后查看哪个分析器正在过滤您的短期内容.我建议你这样做,因为你说你只有一个"嫌疑人",你必须确定哪个分析仪过滤你的数据.

那么为什么不在没有该分析器的情况下将该术语复制到另一个领域?

通过这种方式,您的术语将被索引两次,并且将同时显示为精确单词和n-gram.然后你必须处理两个不同领域的分数.

我希望这在某种程度上帮助了你.

聚合和copyfield属性的一些链接:

在多个字段中索引数据

使用复制字段标记