2016-10-18 5 views
4

"1-5"와 같은 숫자 범위를 "1", "2", "3", "4", "5"로 필터링 할 수 있는지 아는 사람 있습니까? 이 작업을 수행하는 필터 팩터 리를 찾을 수 없습니다.Solr에서 숫자 범위 인덱싱

예 : "1-5 ABC"는 "1 ABC", "2 ABC", "3 ABC", "4 ABC", "5 ABC"

+0

정확히 무엇을 하려는지 명확히 할 수 있습니까? 당신의 질문에 대한 내 머리를 잡으려고. ID의 범위를 기반으로 검색 결과를 필터링하고 싶습니까? –

+0

@LeftyGBalogh 검색 결과로 필터하기는 쉽지만 필요한 것은 "1-5 A"라고하는 내 문서를 색인화하는 필터 팩토리를 "1 A", "2 A", "3 A"로 설정하는 것입니다. "4 A", "5 A"그래서 "3 A"를 검색하면 문서 "1-5 A"의 결과를 얻습니다. – GucciProgrammer

답변

1

로 인덱싱됩니다 당신은 무엇을 달성 할 수 원하는 물론, 그것은 간단하지 않을 수도 있습니다.

자바 코드를 쓰지 않고 가능한 한 가지 방법은 분석 체인에서 PatternReplaceFilter을 사용하는 것입니다. 내 정규식 전문 지식은 매우 기본적인 것이므로 가능한지 여부를 확실히 말할 수는 없습니다 ... 정규 표현식이 '1-3'유형 토큰을 일치시키고 캡처 한 다음 '1'로 대체 할 수 있어야합니다. ','2 ','3 '. 하지만 일치하는 경우 여러 토큰을 방출해야하므로이 작업을 수행 할 수는 없습니다.

확실한 방법은 사용자 정의 filterfactory 클래스를 작성하고 거기에서 논리를 처리하는 것입니다. 이것은 가능하지만 자바 전문가가 필요합니다.

관련 문제