我有2个ngram索引的字段(数据库中的列),第三个是我的全文字段。现在,我的默认文本字段是全文字段,在查询时,我使用dismax处理程序,并在其中指定具有某些boost值的ngrammed字段和具有某些boost值的全文字段。
我的问题是,如果我不使用dismax,而只是搜索全文本字段(即模式中指定的默认字段),同义词就能正常工作,即ca返回加州所在的所有结果,而如果我使用dismax,则还会在ngrammed字段中搜索ca,并返回单词ca的部分匹配,而不会出现在同义词部分。
我想在每种情况下都使用同义词,那么我应该怎么做呢?
发布于 2012-03-06 16:15:04
确保您已经在ngram字段的查询分析器中正确配置了"SynonymFilterFactory“过滤器。
如果仍然不起作用,Solr管理员的分析界面可以提供标记化/过滤过程的更多细节,通过这些细节可以检查同义词部分是否已经按预期工作。
https://stackoverflow.com/questions/9570933
复制相似问题