在美国州名单中搜索“弗吉尼亚”时,如何排除“西弗吉尼亚”等某些单词的结果?

时间:2012-10-24 02:04:50

标签: solr

我让SOLR愉快地运行索引包含美国州的部门名称列表。它运作良好,但搜索“弗吉尼亚”将会显示包含“西弗吉尼亚”的结果,虽然肯定对某些业务要求有帮助,但不在我们的范围内。

是否有一种特殊的方式可以说X的查询不能包含Y(我不介意为“Virginia”的情况制作一个特殊的查询),或者我只能通过迭代来完成这个后查询结果并将结果排除在“西弗吉尼亚”之外?

2 个答案:

答案 0 :(得分:5)

使用减号(连字符)与要排除的短语/术语组合使用。如果使用dismax查询解析器,则甚至不需要指定字段名称。

示例:

使用dismax:

q=virginia -"west virginia"

使用标准查询解析器:

q=field_name:(virginia -"west virginia")

有关更多示例,请参阅Solr Query Syntax wiki页面及其更多链接。

答案 1 :(得分:0)

你可以创建一个字符串类型的状态字段,只搜索状态:“virginia”(在索引/搜索之前将字符串小写)