在Lucene.net中,我想在同一构面类别中进行AND操作,但似乎没有简单的方法可以做到这一点

问题描述 投票:2回答:1

我们有一个客户想要设置配料面。因此,一个产品将具有包含所有成分的Facet。赋予Lucene作为多值字段。

当有人在这个方面进行某些操作时,我想要的是使项目库始终变得更大。我不想要巧克力或坚果的东西,我想要巧克力和坚果的东西,但似乎没有一种简单的方法可以使Lucene做到这一点。

到目前为止,我唯一的想法是创建一个向下钻取查询并对该项目进行向下钻取,然后循环将其作为基础查询传递给另一个向下钻取查询。

是否有更好的方法来处理这种情况?

c# lucene.net facet
1个回答
0
投票

我对构面或DrillDownQuery不太了解,但是您可以使用BooleanQuery。您可以:

var query = new BooleanQuery();
query.Add(new TermQuery(new Term("Ingredient","Chocolate")));
query.Add(new TermQuery(new Term("Ingredient","Nuts")));

当然,要使它起作用,您需要将成分添加为索引中的“简单”字段,而不仅仅是多方面字段

© www.soinside.com 2019 - 2024. All rights reserved.