1
Lucene.Net 및 BooleanQuery에 문제가 있습니다. 이것은 내 코드입니다.Lucene.Net BooleanClause issue
BooleanQuery query = new BooleanQuery();
String[] types = searchTypes.Split(',');
foreach (string t in types)
query.Add(new TermQuery(new Term("document type", t.ToLower())), BooleanClause.Occur.SHOULD);
이것은 기본적으로 자체적으로 작동하는 특정 유형의 문서를 통과하는 OR 문이어야합니다. 그러나 다음 쿼리도 있습니다.
Query documentTitleQuery = new WildcardQuery(new Term("title", "*" + documentTitle.ToLower() + "*"));
query.Add(documentTitleQuery, BooleanClause.Occur.MUST);
제목에서 단어를 검색합니다. 이 두 쿼리는 모두 독자적으로 작동합니다. 이들을 함께 사용하면 Lucene이 documentTitleQuery를 OR로 처리하고있는 것으로 보입니다. 따라서 두 쿼리가 함께 특정 유형의 문서를 반환하고 제목에 특정 단어를 포함해야하지만 제목에 특정 단어가있는 모든 유형을 반환합니다.
덕분에, 완전히 일! –