Lucene.Net IndexSearcher不使用BooleanQuery

时间:2010-09-03 22:19:17

标签: lucene.net boolean

我有以下代码段:

        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进行直接搜索,它可以正常工作。 我很确定数据是正确的。

谢谢, 莱昂纳多

1 个答案:

答案 0 :(得分:0)

嗯..这是一个数据问题! :d lucene工作正常。

谢谢, 利奥!