Lucene查询名称与集合匹配的文档



我有具有以下结构的lucene文档

{
name : "A",
id :1
},
{
name : "B",
id :1
},
{
name : "C",
id :3
}

现在我有一个像List这样的集合,其中包含a、B。我想选择名称为a或B的文档。因此,根据上述lucene文件,我应该有文件A和B。我想用一个lucene调用来获取这两个文档,而不是为每个文档调用多个lucene。

我尝试使用BooleanQuery并在循环中添加我的搜索查询,但搜索查询没有返回任何内容。如果我用单个文档点击lucene,它会工作并返回单个文档。

有人能建议我如何通过一个查询检索所有匹配的文档吗?

我试过低于的东西

List<string> terms = new List<string>(){'A', 'B'};
var mainQuery = new BooleanQuery);
var parser = new QueryParser(Lucene.Net.Util.Version.LUCENE_30, "name", analyzer);
foreach (var term in terms)
{
var query = parser.Parse(term);
mainQuery.Add(query, Occur.MUST_NOT);
} 
var hits = _searcher.Search(mainQuery, 1000);

以上查询不起作用,返回0结果。

我可以自己解决这个问题。这只是一个简单的OR子句,它就是Occur。是否应该

var booleanQuery = new BooleanQuery();
foreach (var term in terms)
{
var termQuery = new TermQuery(new Term("name", term ));
booleanQuery.Add(termQuery, Occur.SHOULD);
}

最新更新