我已经设置了 Solr 5.1.0,并从 MYSQL 数据库导入了正确的数据。它运作良好。
但我只想要完全匹配的结果或与之相关的结果。
喜欢,
Dancers in Mumbai
它给出了包含“舞者+孟买”和只有“舞者”+只有“孟买”关键字的所有结果。我想要的结果必须只包含“舞者+孟买”而不是其他人。
这不是一个完整的答案,但这是我试图解决类似问题的方向。非常欢迎评论。
第1步:实现多个Solr核心,核心1是“工作”(舞者/律师/等),核心2是“城市”(孟买/钦奈/等)。
第 2 步:查询每个核心的完全匹配,因此在相关字段上实现 KeywordTokenizerFactory 以仅查找完全匹配。这将为您提供跨核心的所有匹配项(例如工作:舞者和城市:孟买)。
第 3 步:使用 EDisMax 执行一般查询以进行用户友好的搜索(例如在多个字段中搜索“dancers in mumbai”),并使用 boost 字段来提升在先前查询中找到的工作/城市。
我很想知道是否有更好的方法来做如此复杂的事情,但我还没有找到。希望能帮助到你。