2012-01-16 2 views
0

Solr 3.3에서 쿼리를 수행하기 위해 알파벳순 범위를 구현하려고합니다. 사용자는 이름이 (예를 들어) A에서 G로 시작하는 레스토랑 목록을 가져 오려고합니다. "frange"기능으로 시도했지만 문자가있는 모든 필드를 포함합니다. 특정 편지로 START라는 이름의 레스토랑을 갖고 싶습니다. 같은Solr ALPHABETICAL RANGE QUERY

뭔가 : (A *와 G *)가 아니라 (그램) : "G에 대한 모든 레스토랑 가져 오기".

답변

2

name:[a TO h]을 사용하십시오. 여기서 name 필드는 토큰 화되지 않습니다. 필요한 경우이 필드의 별도 사본을 작성하십시오. 당신은이 토큰 화 된 필드를하려고하면

, 그것은 다음 문자 중 하나을 시작하는 단어가 포함 된 모든 이름과 일치합니다. 또한 범위의 마지막 문자를 '증가'시켜야합니다. z 인 경우 *으로 바꿉니다. 예를 들어 사용자가 w에서 z을 찾고있는 경우 쿼리는 name:[w TO *]이어야합니다.

0

당신이 name:[a TO g]를 시도 감사?

+0

나는 이것이 OP가 원하는 것을하지 않을 것이라고 확신한다. –

+0

예 시도했지만 해당 문자로 시작하는 결과를 검색하지 않습니다. 대신, 그 문자를 포함하는 모든 "이름"과 일치합니다 – mafelstroh