Lucene.NET “ИЛИ”

Как я делаю "ИЛИ" в Lucene.NET. В основном то, что я имею, является массивом идентификаторов, и я хочу возвратить любые записи, где конкретное поле содержит любое из значений. Я ранее делал это со всего одним значением, но теперь я хочу преобразовать следующий код так, чтобы MetaDataID был массивом возможных значений вместо одного единственного значения.

if (MetaDataID.Length > 0)
    completeQuery.Add(new QueryParser("MetaData", new StandardAnalyzer()).Parse(MetaDataID), BooleanClause.Occur.MUST);
8
задан Kyle 13 January 2010 в 13:31
поделиться

1 ответ

Вам нужно использовать booleanclause.occur.should вместо Booleanclause.occur.must

, например:

BooleanQuery booleanQuery = new BooleanQuery();
Query query1 = new TermQuery(new Term("id", "<id 1>"));
Query query2 = new TermQuery(new Term("id", "<id 2>"));
booleanQuery.add(query1, BooleanClause.Occur.SHOULD);
booleanQuery.add(query2, BooleanClause.Occur.SHOULD);
4
ответ дан 5 December 2019 в 08:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: