代码之家  ›  专栏  ›  技术社区  ›  Homer1980ar

Lucene.NET IndexSearcher不使用布尔查询

  •  0
  • Homer1980ar  · 技术社区  · 15 年前

    我有以下代码段:

            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 回复  |  直到 15 年前
        1
  •  0
  •   Homer1980ar    15 年前

    好。。这是一个数据问题!D Lucene工作得很好。

    谢谢, 狮子座!