在美国州名单中搜索"弗吉尼亚"时,如何排除某些单词的结果,例如"West Virgina"?

mro*_*ney 1 solr

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

是否有一种特殊的方式可以说X的查询不能包含Y(我不介意为"Virginia"的情况制作一个特殊的查询),或者我只能通过迭代结果来执行此后查询不包括"西弗吉尼亚"的结果?

小智 5

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

例子:

使用dismax:

q=virginia -"west virginia"
Run Code Online (Sandbox Code Playgroud)

使用标准查询解析器:

q=field_name:(virginia -"west virginia")
Run Code Online (Sandbox Code Playgroud)

有关更多示例,请参阅Solr查询语法 Wiki页面及其更多链接.