2013-05-03 6 views
0

Suggester와 함께 Shingle Fitler를 사용하여 자동 제안 드롭 다운을 구현했습니다. 싱글 필터와 함께 사용하는 필드에는 preserveoriginal = 1 인 worddelimiter가있어 "women 's"를 "women 's"및 "womens"로 토큰 화합니다.동일한 시작과 끝을 가진 토큰을 무시하도록 ShingleFilterFactory 구성

왜냐하면 shingle 필터가 예상되는 토큰과 별도로 단어 ngram을 생성 할 때 "여성용 여성"토큰이 있습니다. ShingleFilter를 구성하여 동일한 시작 및 끝 값을 갖는 토큰을 무시할 수있는 방법이 있는지 알고 싶었습니다.

답변

0

그 토큰을 제거하는 것만으로는 충분하지 않다고 생각합니다. 당신의 문구 "red women's shoes" 작업 말, 당신은 끝낼 :

"red women's" "womens shoes" 

하는 경우, SynonymFilter 단지보다는 일관성을 추가 : 그냥 중간 토큰을 제거

"red women's" "women's womens" "womens shoes" 

당신을 남긴다 적응성. SynonymFilter에 원본을 보존하는 것이합니다 (SynonymFilter documentation 상단에있는 참고 사항을 참조하십시오) PhraseQueries의 방법으로 얻는 것과 같은 이유로

, 나는 그것이 ShingleFilter 함께 얻을 수 있도록하는 좋은 방법이 표시되지 않습니다. 원래 토큰을 유지하도록 설정하지 않고 인덱스 및 쿼리 시간에 SynonymFilter를 적용 할 수 있습니까?

+0

http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.RemoveDuplicatesTokenFilterFactory

보다도 내가 널 필터 토큰 위치와 N- 그램이에 따라 고려할 것이라고 생각했다. 예를 들어 위치에 따르면, "빨간색 여성", "빨간색 여성", "여성 신발", "여성 신발"과 같은 토큰을 생성해야합니다. 하지만 그냥 직접 확인해 보았습니다. 그렇다면 다음과 이전 토큰을 어떤 기준에서 고려해야할까요? – rounak

0

RemoveDuplicatesTokenFilter를 사용할 수도 있습니다.

관련 문제