2016-08-08 4 views
1

의미 론적 검색 엔진으로 Apache Solr을 사용하고 있습니다. 어떤 사용자가 어떤 내용을 입력 할 수 있으며 단어를 사용하여 관련 결과를 사용하여 검색해야합니다.Apache Solr 토큰 화자

문자열을 토큰으로 분할하고 싶습니다.

Example: "actorsfrommumbai" -> "actors from mumbai" 

어떻게하면 solr에서이 기능을 사용할 수 있습니까?

+0

[공백없이 두 단어로 결합 된 단어를 토큰하는 법] 가능한 복제본 (http://stackoverflow.com/questions/25153480/how-to-token-a-word-which-combined-by-two -words-without-whitespace) – MatsLindh

+0

답장을 보내 주셔서 감사합니다하지만 이것은 solr에 데이터를로드하는 동안 필드를 입력으로 가져 오는 토큰 화입니다. ** actorsinmumbai **에서 검색 할 때 무엇을해야합니까? 어떤 사용자가 ** actorsinmumbai **를 검색 할 때 어떻게 문자열을 분할 할 수 있습니까? 이것은 쿼리 시간 필터링 –

+0

제안 된 메서드를 _actually_ 시도 했습니까? 필터는 토큰을 단어의 각 부분에 하나씩 더 많은 토큰으로 나눕니다. 분석 체인 정의에 'index'및 'query'매개 변수를 사용하여 인덱싱 및 쿼리에 대해 여러 가지 필터 시퀀스를 제공 할 수 있습니다. – MatsLindh

답변

0

제공된 사전을 기준으로 분해하기 위해 분석기를 구성 할 수 있습니다. 분석기를 이와 같이 구성해야합니다.

<analyzer> 
<tokenizer class="solr.StandardTokenizerFactory"/> 
<filter class="solr.DictionaryCompoundWordTokenFilterFactory" 
dictionary="abc.txt"/> 
</analyzer> 

abc.txt는 사전입니다.

분석기는 쿼리 시간과 인덱스에 모두 적용됩니다.