1

我已经让 SOLR 愉快地运行索引包含美国各州的部门名称列表。然而,它运行良好,搜索“Virginia”会出现包含“West Virginia”的结果,虽然对某些业务需求肯定有帮助,但我们的需求不存在。

有没有一种特殊的说法,对 X 的查询不能包含 Y(我不介意为“弗吉尼亚”的情况制作一个特殊的查询),或者我只能通过迭代结果来进行这个后查询和排除“西弗吉尼亚”的结果?

4

2 回答 2

5

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

例子:

使用 dismax:

q=virginia -"west virginia"

使用标准查询解析器:

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

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

于 2012-10-24T05:11:39.137 回答
0

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

于 2012-10-29T00:02:07.760 回答