【发布时间】:2010-09-03 22:19:17
【问题描述】:
我有以下代码sn-p:
QueryParser parser = new MultiFieldQueryParser(Lucene.Net.Util.Version.LUCENE_29, new string[] { Field1, Field2, Field3 }, _analyzer);
parser.SetDefaultOperator(QueryParser.Operator.AND);
Query queryOrig= parser.Parse(queryString);
var query = new BooleanQuery();
query.Add(queryOrig, BooleanClause.Occur.MUST);
if (itemId.HasValue)
query.Add(new TermQuery(new Term("Field3", NumericUtils.IntToPrefixCoded(itemId.Value))), BooleanClause.Occur.MUST);
Hits hits;
if (sortField != null)
{
var sort = new Sort(new SortField(sortField, isDescending));
hits = Searcher.Search(query, null, sort);
}
else
hits = Searcher.Search(query);
无论如何,这段代码总是返回 0 次命中。 如果我使用不带布尔值的 queryOrig 进行直接搜索,它可以正常工作。 我很确定数据是正确的。
谢谢, 莱昂纳多
【问题讨论】:
标签: lucene.net boolean