-1

我已经设置了 Solr 5.1.0,并从 MYSQL 数据库导入了正确的数据。它运作良好。

但我只想要完全匹配的结果或与之相关的结果。

喜欢,

Dancers in Mumbai

它给出了包含“舞者+孟买”和只有“舞者”+只有“孟买”关键字的所有结果。我想要的结果必须只包含“舞者+孟买”而不是其他人。

4

2 回答 2

1

这不是一个完整的答案,但这是我试图解决类似问题的方向。非常欢迎评论。

第1步:实现多个Solr核心,核心1是“工作”(舞者/律师/等),核心2是“城市”(孟买/钦奈/等)。

第 2 步:查询每个核心的完全匹配,因此在相关字段上实现 KeywordTokenizerFactory 以仅查找完全匹配。这将为您提供跨核心的所有匹配项(例如工作:舞者和城市:孟买)。

第 3 步:使用 EDisMax 执行一般查询以进行用户友好的搜索(例如在多个字段中搜索“dancers in mumbai”),并使用 boost 字段来提升在先前查询中找到的工作/城市。

我很想知道是否有更好的方法来做如此复杂的事情,但我还没有找到。希望能帮助到你。

于 2016-05-25T00:46:23.153 回答
0

使用必需的术语,例如:+dancers +mumbia

或短语查询:“dancers in mumbia”

会工作。

您还可以使用q.op参数将查询的默认运算符设置为“AND” 。

于 2015-07-06T16:06:00.570 回答