2014-05-14 2 views
-1

Lucene의 정규 표현식에 대한 색인이 생성되었습니다. 표준 분석기를 사용하여 색인 된 정규 표현식을 통해 주어진 입력을 검색 할 수있는 lucene 쿼리를 생성 할 수 있습니까?Lucene의 정규 표현식 색인화 및 입력 검색

org.apache.lucene.search.Query luceneQuery50=queryBuilder4.keyword().wildcard().onField("RegularExpression").matching("9876654").createQuery();

분야 "으로 RegularExpression"는 문자열 오브젝트로서 기억된다.

편집

최대 절전 모드 검색은 주석으로 사용됩니다

@Indexed public class NumbersTbl { @Field public String RegularExpression; } 

답변

0

당신이 Field.Index.NOT_ANALYZED로 지정, 당신은 Field를 만들 때 확인, 숫자를 검색 할 경우, 그렇지 않으면 번호가 제거됩니다 인덱싱하기 전에 분석기에서 확인하십시오.

편집

은 자세한 내용

EDIT2

당신은 당신이 필드를 분석하지 않을 @Field 주석에 지정할 수 있습니다 Find regular expression match using Lucene?이 대답을 참조하십시오. 이렇게하면 색인의 '있는 그대로'필드의 내용이 보존됩니다. 기본값은 Analyze.YES입니다. 당신은 최대 절전 모드 검색을 사용하기 때문에, 당신은 하이버 네이트 쿼리에 루씬 쿼리를 래핑이 getting started guide를 볼 수 있습니다, 또한 docs

@Field(index=Index.YES, analyze=Analyze.NO) 

에 문의하십시오. 이미 그렇게했을 가능성이 있습니다. 게시 한 코드에서 알 수 없습니다. 유용한 답변을 얻고 싶다면 일반적으로 코드을 게시하시기 바랍니다. 생각해 보면 단 한 줄의 코드에서만 무엇이 잘못되었는지 알리는 것은 매우 어렵습니다.

+0

내가 검색 한 번호는 색인 된 정규 표현식과 일치해야하는 입력입니다. –

+0

그건 분명합니다. 게시물을 수정하고 [문서] (https://lucene.apache.org/core/4_0_core/org/apache/lucene/document/Document.html)를 작성하는 코드를 추가하여 색인 및 검색어로 찾으려는 항목을 선택하십시오. – bpgergo

+0

나는 Hibernate 색인 방법을 사용하고있다. @Indexed public class NumbersTbl {\t @Field \t public String RegularExpression; }' –