2011-09-02 4 views
3

필드에 AT & T를 포함하는 인덱스가 있지만이 필드를 검색 할 때 & 기호를 AT % 26T로 인코딩 할 수 없습니다. AT % 26T를 검색하면 아무 것도 반환되지 않습니다. 분석기 또는 필터를 사용하여 이러한 유형의 용어에 대해 색인을 생성 할 수 있습니까?solr 인덱스에서 AT & T 토큰을 처리하는 방법

참고 : 내가 reserveOriginal = 1 ...와 WordDelimiter 분석기를 사용했지만 당신은 관리자에서 찾을 수있는 다른 AT&T

검색을 시도 할 수는

+0

어떤 토크 나이저를 사용합니까 ?? – Dorin

+0

WordDelimiter를 사용합니다. –

답변

1

다른 사람이 보여주는 것보다 다른 이유는 특수 문자를 이스케이프 처리하기 때문입니다. 당신은 목록에서 모든 탈출해야합니다

+ - && || ! () { } [ ]^" ~ * ? : \

그냥 앰퍼샌드 전에 사용 백 슬래시를 시도합니다.

+1

저에게 적합하지 않습니다. – zengr

3

를 작동하지 않았다/쿼리 및 색인 단계에서 AT & T라는 용어가 어떻게 발생하는지 분석합니다. 자세한 정보가 표시되면 분석기가 귀하의 용어로하는 일을 능동적으로 볼 수 있습니다.

0

아마도 catenateWords = "1"을 사용해 볼 수 있습니다. 따라서 AT & T도 ATT로 색인됩니다. 또한 분석기가 모두 아래에 표시됩니다 확인하십시오

<analyzer type="query"> //this will define how the query is parsed and split into tokens before searching it 

<analyzer type="index">// this will define how the field is indexed 

만 분석기는 쿼리 및 인덱스 시간에 모두 사용할 수있는 것보다이 태그 < 분석기 >이있는 경우

.

1

WordDelemiter를 조금 더 조정해야합니다. #java

https://github.com/karussell/Jetwick/blob/master/src/main/java/de/jetwick/es/JetwickFilterFactory.java#L49

배경 람 해시 태그를 검색 할 내가 jetwick 위해 만들었다 내 조정을 참조하십시오 '&은'그 어떤 숫자 나 문자 만으로 제거되기 때문에 & AT T는 일반적으로 AT 및 T로 토큰 화 위의 클래스를 사용하면 '&'기호가 숫자로 처리되고 '&'기호를 포함한 모든 항목은 'AT & T'(및 'AT'및 'T'생각합니다)로 토큰 화됩니다. preserveOriginal = 1 또는 char로 취급하지만 'AT'와 'T'로 분리되지 않습니다. 문자열의 모든 위치가 문자로 감지 될 때

BTW : 쿼리 문자열에 동일한 분석기/토크 나이저도 다시 색인하고 적용해야합니다.

관련 문제