在我的Lucene搜索中,我想排除在特定字段元素中索引的所有文档,这些元素不属于给定集合。
例如,假设我的文档代表一幅图。并有一个色域。在颜色字段中,我索引图形中使用的所有颜色。现在说我可以说五种颜色。红色,蓝色,绿色,紫色和棕色。我想只检索使用这些颜色的图纸,并且应排除任何颜色不是上述颜色的图纸。如果我想要使用所有这些颜色的所有图形而不是所有这些颜色,我可以在文档中为“颜色数量”添加一个新字段,然后通过为每种颜色添加MUST术语查询来构建我的布尔查询。添加一个必须的布尔查询,其中count作为颜色数。但是我想要检索所有具有上述5种颜色组合的文档。因此,也可以检索完全用棕色完成的绘图。
请注意我有数千种颜色。因此,为每种颜色创建一个字段,然后为除了我的5种颜色以外的所有人做MUST_NOT也不是一种选择。
非常感谢!
答案 0 :(得分:0)
我认为没有内置的方法可以做到这一点。相反,您希望在某处存储颜色集(特定图形包含的颜色)。然后,当您在搜索时浏览每个搜索结果时,加载颜色集,检查它是否包含任何“其他”颜色,并相应地过滤结果。
某处可以是至少两个地方中的任何一个: