2009-07-07 2 views
4

나는 Lucene이 내부 쿼리 언어를 가지고 있으며, 부울 연산자를 사용하여 이들의 조합을 작성한다고 읽었습니다. 내가 그들의 웹 사이트에 그것에 관하여 모두를 읽고는 루크에서 잘 작동, 나는기본 Lucene 쿼리 구문은 어떻게 사용합니까?

field1:value1 AND field2:value2 

등의 작업을 수행 할 수 있으며, 그것은 겉으로는 올바른 결과를 반환합니다.

내 문제는 Lucene 쿼리를 API에 전달하는 방법입니다. QueryParser를 보았지만 필드를 지정해야합니다. 이것은 필자가 수동으로 입력 문자열, 필드, 값, 괄호 등을 수동으로 분석해야한다는 것을 의미합니까, 아니면 모든 것을 먹여 살릴 수있는 방법이 있습니까?

저는 Lucene.NET을 사용하고 있습니다. 그러나 orignal java의 메소드 포트를 통한 메소드이므로, 모든 조언을 받으실 수 있습니다.

답변

2

사용자가 입력해야하는지 여부를 묻는 중입니까? 그렇다면 쿼리 파서에는 기본 필드가 있습니다. 여기 약간 more info입니다. 작업을 수행 할 기본 필드가있는 한 필드를 지정할 필요가 없습니다.

String에서 Query 개체를 얻는 방법을 묻는다면 parse 메서드가 필요합니다. 필드 및 초기 필드 등을 이해합니다. 쿼리 구문 분석기와 인덱스 작성기가 모두 동일한 분석을 사용하는지 확인하면됩니다.

+0

오, 그래서 당신이 지정하는 필드는 아무것도 지정되지 않은 경우의 기본 필드 일뿐입니다? – Matt

+2

사용자가 "빨간색 흰색 파란색"을 검색하면 구문 분석에서 나온 쿼리가 기본 필드를 검색합니다. 대신에 "title : red title : white title : blue"를 검색하면 쿼리는 색인의 제목 필드만을 볼 것입니다. –

+0

예 (죄송합니다. 처음에는 의견을 잘못 해석 한 것 같습니다). –