我让SOLR愉快地运行索引包含美国州的部门名称列表。它运作良好,但搜索“弗吉尼亚”将会显示包含“西弗吉尼亚”的结果,虽然肯定对某些业务要求有帮助,但不在我们的范围内。
是否有一种特殊的方式可以说X的查询不能包含Y(我不介意为“Virginia”的情况制作一个特殊的查询),或者我只能通过迭代来完成这个后查询结果并将结果排除在“西弗吉尼亚”之外?
答案 0 :(得分:5)
使用减号(连字符)与要排除的短语/术语组合使用。如果使用dismax查询解析器,则甚至不需要指定字段名称。
示例:
使用dismax:
q=virginia -"west virginia"
使用标准查询解析器:
q=field_name:(virginia -"west virginia")
有关更多示例,请参阅Solr Query Syntax wiki页面及其更多链接。
答案 1 :(得分:0)
你可以创建一个字符串类型的状态字段,只搜索状态:“virginia”(在索引/搜索之前将字符串小写)