C# 为什么Lucene.NET 3.0.3中的BooleanQuery不返回任何内容?

C# 为什么Lucene.NET 3.0.3中的BooleanQuery不返回任何内容?,c#,lucene,lucene.net,booleanquery,C#,Lucene,Lucene.net,Booleanquery,我使用Lucene.NET 3.0.3搜索两个字段(我有两个名为“Noidung”、“Dapa”的字段),我使用C#中的BooleanQuery来实现这一点,但是当我运行这段代码时,结果是什么也没有返回,我确信要搜索的源代码没有问题,因为我测试了它。那么,使用Lucene.NET 3.0.3的人能提供一些解释吗 IndexReader indexreader = IndexReader.Open(directory, true); Searcher indexsearch = new Index

我使用Lucene.NET 3.0.3搜索两个字段(我有两个名为“Noidung”、“Dapa”的字段),我使用C#中的
BooleanQuery
来实现这一点,但是当我运行这段代码时,结果是什么也没有返回,我确信要搜索的源代码没有问题,因为我测试了它。那么,使用Lucene.NET 3.0.3的人能提供一些解释吗

IndexReader indexreader = IndexReader.Open(directory, true);
Searcher indexsearch = new IndexSearcher(indexreader);

BooleanQuery bq = new BooleanQuery();

Query q1 = new TermQuery(new Term("Noidung", PhanSoSanh));
Query q2 = new TermQuery(new Term("Dapa", txtText.Text.ToString().Trim()));
bq.Add(q1, Occur.MUST);
bq.Add(q2, Occur.MUST);

TopDocs ketqua = indexsearch.Search(bq, null, 500);

var hits = ketqua.ScoreDocs;
foreach (var hit in hits)
{
    // Return result
}


索引中有2个字段(“Noidung”、“Dapa”)。现在我想在“Noidung”字段中搜索,然后用“Dapa”搜索结果。我使用booleanQuery,但结果中不返回任何东西?帮帮我

你能试试
查询搜索器吗

BooleanQuery booleanQuery = new BooleanQuery();

var noidungQuery = new QueryParser(version, "Noidung", analyzer)
    .Parse(PhanSoSanh);
var dapaQuery = new QueryParser(version, "Dapa", analyzer)
    .Parse(txtText.Text.ToString().Trim());

booleanQuery.Add(noidungQuery, Occur.MUST);
booleanQuery.Add(dapaQuery, Occur.MUST);

使用
TermQuery
根据索引发送原始文本,如@SimonSvensson所述,这导致了零结果,本文将对此进行进一步解释。

创建术语查询的方式表明,您将在大小写和标记化方面进行精确匹配。您是否使用KeywordAnalyzer为文档编制索引?PhanSoSanh和txtText.Text的值是多少?为什么不使用QueryParser?PhanSoSanh和txtText.text是用于搜索的字符串,我将其放在文本框中。索引是好的!因为我在索引时使用QueryParser在一个字段中搜索,这没问题。但现在我必须在2个不同数据索引的2个字段中搜索。你们看,索引中有2个字段(“Noidung”,“Dapa”)。现在我想在“Noidung”字段中搜索,然后用“Dapa”搜索结果。我使用booleanQuery,但结果中不返回任何东西?帮帮我?@rae1n嗨。你能看看我的问题吗。没有人回复Lucene的帖子。