Как я делаю "ИЛИ" в Lucene.NET. В основном то, что я имею, является массивом идентификаторов, и я хочу возвратить любые записи, где конкретное поле содержит любое из значений. Я ранее делал это со всего одним значением, но теперь я хочу преобразовать следующий код так, чтобы MetaDataID был массивом возможных значений вместо одного единственного значения.
if (MetaDataID.Length > 0)
completeQuery.Add(new QueryParser("MetaData", new StandardAnalyzer()).Parse(MetaDataID), BooleanClause.Occur.MUST);
Вам нужно использовать 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);