2010-11-19 5 views
-1

검색 모델을 사용하여 웹 응용 프로그램을 작성 중입니다.디자인 패턴을 문의하십시오

검색 서블릿에서 검색 서블릿은 클라이언트로부터 요청 매개 변수를 캡처 한 다음 검색을 위해 최대 절전 모드 검색 쿼리를 작성합니다.

이제 문제는 clien의 매개 변수가 변경 가능하다는 것입니다. 우리가 받아

모든 매개 변수는 다음과 같이 나열되어 있습니다 :

1) 키워드를.

검색에 사용되는 키워드는이 매개 변수가 전달 된 경우에도 검색 요청을 처리 할 수 ​​있습니다. 유효한 예 :

/search?keyword="test" 

2) lowleftX, lowleftY, upperrightX, upperrightY.

이 네 개의 매개 변수는 동시에 또는 반드시 발생해야합니다.이 네 개의 매개 변수가 lucene의 TermRangeQuery에 사용되므로, 그 중 하나가 발생하면 나머지 세 개 또한 발생해야합니다. 그리고이 네 개의 매개 변수는 sametime에서 "키워드"와 함께 발생할 수 있습니다. 유효한 예 :이 검색 범위를 제한하는 데 사용됩니다

/search?lowleftX=10&lowleftY=10&upperrightX=40&upperrightY=30 
/search?lowleftX=10&lowleftY=10&upperrightX=40&upperrightY=30&keyword="test" 

3) 카테고리 (단지) 특별 카테고리 내에서 검색.

4) 시작, 이들 두 파라미터는 페이징에 이용되는

을 제한한다.

5) returnFields

이 인덱스에 저장되어있는 경우 (인덱스에서 retivived 될 returnFields가)와 클라이언트로 반환한다.

따라서 추정 구문을 사용하여 쿼리를 작성하는 방법에 대해서는 잘 모릅니다 (if .... else .... if ...).

누구나 내게 어떻게 알 수 있습니까?

답변

0

"견적 구문"이 무슨 뜻인지 잘 모르겠지만 그 점 1-3은 실제 Lucene 쿼리입니다. 매개 변수를 검사하고 어떤 유형의 쿼리 유형 및 매개 변수의 수에 따라 결정해야합니다. Query의 여러 하위 클래스, 특히 BooleanQuery를 사용하여 적절한 Lucene 쿼리를 작성하고이를 사용하여 Hibernate Search FullTextQuery를 작성한다. 이 전체 텍스트 쿼리에서 시작 및 제한 매개 변수를 지정합니다. 투영을 사용하여 인덱스에서 직접 필드 값을 검색하는 경우 전체 텍스트 쿼리에서 예상 필드 이름도 설정합니다. 조금 도움이 되었기를 바랍니다.

관련 문제