0
여러 용어를 사용할 때 작업 순서를 제어 할 수 있습니까? 예를 들어 Lucene.net : 여러 용어로 작업 순서를 제어하는 방법
, 내가 검색을 적용 할 때Lucene.Net.Search.TermQuery tq1 = new Lucene.Net.Search.TermQuery(new Lucene.Net.Index.Term("location", "seattle"));
Lucene.Net.Search.TermQuery tq2 = new Lucene.Net.Search.TermQuery(new Lucene.Net.Index.Term("location", "portland"));
Lucene.Net.Search.TermQuery tq3 = new Lucene.Net.Search.TermQuery(new Lucene.Net.Index.Term("location", "spokane"));
Lucene.Net.Search.TermQuery tq4 = new Lucene.Net.Search.TermQuery(new Lucene.Net.Index.Term("type", "city"));
, 나는 내 검색을 필터링 할 수 위의 약관을 적용 할 말을 할 수 있습니다, 그래서 내 쿼리 형식은 다음과 같을 것 ... 음식에 대한 검색을 할 수 있습니다
음식 AND ((TQ1 또는 TQ2 또는 TQ3)와 tq4)
가 현재 나는 다음과 같은 형식으로 구축 할 수있었습니다
{+xml:food +(location:seattle location:portland location:spokane +location:city)}
,
그러나, 나는 기본적으로
{+xml:food +(+(location:seattle location:portland location:spokane) +location:city)}
의 형식으로 그걸 얻기 위해 노력하고, 내가 뭘
Lucene.Net.Search.BooleanQuery bq = new Lucene.Net.Search.BooleanQuery();
Lucene.Net.Search.BooleanQuery innerBQ = new Lucene.Net.Search.BooleanQuery();
bq.Add("xml:food", Lucene.Net.Search.BooleanClause.Occur.MUST);
foreach (Lucene.Net.Index.Term term in listOfTerms)
{
Lucene.Net.Search.TermQuery tq = new Lucene.Net.Search.TermQuery(term));
innerBQ.Add(tq, Lucene.Net.Search.BooleanClause.Occur.SHOULD);
}
innerBQ.Add("location:city", Lucene.Net.Search.BooleanClause.Occur.MUST);
bq.Add(innerBQ, Lucene.Net.Search.BooleanClause.Occur.MUST);
모든 제안은 감사합니다 ...이 같은 것입니다.
innerBQ
의 감사에location:city
조항을 추가해야합니다. 조금 더 쳐다 보면서 이러한 부울 쿼리를 조합하는 방법을 이해해야했습니다. – Kevin