2014-11-19 3 views

답변

1

, 당신은 항상 다만이 작업을 수행 할 수 있습니다 : "X M Z K"~10. 그것은 당신이 원하는 것과 일치합니다. 그러나 그것은 또한 "X A A M Z A A K"와 같은 다른 것들과도 일치합니다. 당신이 그것을 용인 할 수 있다면, 쉬운 대답이 있습니다. edismax 쿼리 파서의 pf2 and ps2 매개 변수를 살펴보고, 이들 매개 변수가 충분히 가까워 지는지 확인할 수도 있습니다.

surround query parser은 SpanQueries를 사용하여 디자인되었습니다. 그것은 쿼리 같아 보인다 : {!surround} 10W(1N(X, M), 1N(Z, K)) 여기서 작동하지만, 뭔가를 놓치지 않는 한 서라운드는 중첩 된 괄호를 지원하지 않는 것처럼 보인다.

이러한 요구 사항이 적절하지 않은 경우 Solr 쿼리 구문을 사용하는 대신 Lucene API를 통해 쿼리를 직접 작성해야한다고 생각합니다.

SpanQuery termX = new SpanTermQuery(new Term("fieldName", "X")); 
SpanQuery termM = new SpanTermQuery(new Term("fieldName", "M")); 
SpanQuery termZ = new SpanTermQuery(new Term("fieldName", "Z")); 
SpanQuery termK = new SpanTermQuery(new Term("fieldName", "K")); 
SpanQuery phraseXM = new SpanNearQuery(new SpanQuery[] {termX, termM}, 0, true); 
SpanQuery phraseZK = new SpanNearQuery(new SpanQuery[] {termZ, termK}, 0, true); 
SpanQuery finalQuery = new SpanNearQuery(new SpanQuery[] {phraseXM, phraseZK}, 10, false); 
+0

다음과 같이 SpanQuery을 조합하면 어떻게 수행 할 수 있습니까? 그러면 어떻게 solan에 SpanQuery를 전달하겠습니까? – Philippe

관련 문제