我正在使用SOLR和NGramTokenizerFactory来帮助创建搜索令牌以获得单词的子串
NGramTokenizer配置的最小字长为3
这意味着我可以搜索例如"unb",然后匹配"难以置信"这个词.
但是我对"I"和"in"等短语有疑问.这些没有被SOLR索引(我怀疑是因为NGramTokenizer),因此我无法搜索它们.
我不想将最小字长减少到1或2,因为这会创建一个巨大的搜索索引.但是我希望SOLR能够包含长度已经低于这个最小值的整个单词.
我怎样才能做到这一点?
/卡斯滕
首先,尝试理解为什么你的单词不会被solr使用"分析工具"索引
http://localhost:8080/solr/admin/analysis.jsp
Run Code Online (Sandbox Code Playgroud)
只需输入您要搜索的字段和文本,然后查看哪个分析器正在过滤您的短期内容.我建议你这样做,因为你说你只有一个"嫌疑人",你必须确定哪个分析仪过滤你的数据.
那么为什么不在没有该分析器的情况下将该术语复制到另一个领域?
通过这种方式,您的术语将被索引两次,并且将同时显示为精确单词和n-gram.然后你必须处理两个不同领域的分数.
我希望这在某种程度上帮助了你.
聚合和copyfield属性的一些链接: