所以我的用户有[Field A]和[Field B]等字段。字段可以为空或不存在(用户不会添加任何内容)。
现在我的查询是这样的:
字段A:绿色
Solr给了我100个绿色领域的用户。
我想通过一些提升来过滤这100位用户
FieldA:绿色AND (FieldB:Blue OR FieldB:*)
不是它会给我所有字段的蓝色或所有字段在这个字段中有东西。但是我也想要那些没有这个领域的人。
我试试:
FieldA:绿色AND (FieldB:Blue OR FieldB:* OR(-FieldB:*))
但它不起作用
答案 0 :(得分:1)
为什么不尝试为空字段保存固定值。
所以你可以: FieldA:蓝色 FieldB:0
然后简单查询 FieldA:绿色AND(FieldB:蓝色OR FieldB:0)
你也可以将FieldB:*切换到FieldB:[* TO *]
答案 1 :(得分:1)
好吧也许我会再次解释我的问题:
我有两个字段:姓名和姓氏。我有10条姓名为BOB的记录和3条姓氏为SMITH的记录
首先我过滤:
名称:BOB和查询给我10条记录。
现在我想过滤所有Bob Smith的人,然后我想让名字为bob的人(名字BOB是必须的)然后我想要在字段Surname中有其他东西的人。
所以我的查询如下:
姓名:BOB AND(姓:SMITH ^ 3或姓: ^ 0) - 这给了我一个名字必须是bob的人和第一个姓史密斯的人,然后是其他人的人。但是"姓:"不要给我空旷的人。所以我尝试做(-surname:* ^ 0),但它没有用。
现在,只有姓名BOB但没有任何姓氏的人才会从结果中被禁用