2010-03-26 8 views
8

표준 분석기를 사용하여 Lucene 색인을 검색 할 때 Luke을 사용하면 검색 대상 필드가 MY_VALUE 형식의 값을 포함하고 있음을 알 수 있습니다. 그러나 필드를 검색 할 때 : "MY_VALUE", 쿼리는 "my value"필드로 구문 분석됩니다.Lucene 검색 및 밑줄

밑줄 (_) 문자를 이스케이프하여 검색 할 수있는 간단한 방법이 있습니까?

편집 :

2010년 4월 1일 오전 11시 8분

내가 거기에 루씬 2.9.1에 대한 토크 나이에 버그가 그것을 전에 아마이 생각 PST

. 누가 복음을로드하고 숫자가있는 경우, 다음과 같은 토큰이 반환됩니다 "BB_HHH_FFFF5_SSSS"를 검색하려고 :

"BB hhh_ffff5_ssss는"

몇 가지 테스트 후,이 때문에입니다 것으로 나타났습니다 수. 만약 내가 입력

"BB_HHH_FFFF_SSSS는"내가 얻을 수의 존재가이 있고 가정하지 않는 한이 시점에서

"BB의 HHH FFFF ssss는"

, 나는 토크 나이 버그쪽으로 기울고 있어요

나는 왜 그런지 보지 못한다.

누구든지 확인할 수 있습니까?

답변

1

StandardAnalyzer를 사용하여 해당 필드를 인덱싱하는 것처럼 보이지 않습니다. Luke에서는 MY_VALUE와 정확하게 일치시키기 위해 해당 필드를 인덱싱하는 데 사용한 분석기를 선택해야합니다.

덧붙여서 KeywordAnalyzer를 사용하면 MY_VALUE와 (과) 일치시킬 수 있습니다.

+0

아니요, 표준 분석기를 인덱서로 사용하여 이상한 것입니다. – Matt

+3

표준 분석기를 사용하여 색인을 생성하면 색인에 "my"와 "value"가 두 개의 서로 다른 토큰으로 포함됩니다. "my value"(따옴표 포함)를 검색하면 결과를 얻을 수 있습니다. – Thomas

+0

색인 생성에 사용하는 분석기를 다시 확인해 보겠습니다. StandardAnalyzer를 인덱싱에 사용했다면, StandardAnalyzer가 항상 밑줄로 나뉘기 때문에 MY_VALUE를 용어로 사용할 수 없습니다. – bajafresh4life

1

이 사용 사례에서는 표준 분석기를 사용할 수 없을 것이라고 생각합니다.

무엇이 내가 이라고 생각하면이 필요합니다. 키워드 분석기는 약간의 노력으로 잘 작동해야합니다 (전체 필드가 ​​단일 용어가됩니다).

루크로 필드를 볼 때 혼란이 발생한다고 생각합니다. 저장된 값은 이 아니고 검색어에 사용되는 것이므로 검색어가 필요합니다. 나는 당신이 당신의 분야에 대해 저장된 용어를 보았을 때, 그것이 "내"와 "가치"가 될 것이라고 생각합니다.

도움이 되었으면