2013-06-14 2 views
0

이 사용자 정의 분석기를 만들려고하고 어떤 이유로 든 Analyzer [] not found for field [] 오류가 발생했습니다 ... 나는 많은 것을 둘러 보았고 다른 구현을 시도했는데 올바른 구문이 있다고 생각합니다. ... 여기에 있습니다 :타이어 (ElasticSearch)의 사용자 정의 분석기

settings :number_of_shards => 5, 
     :number_of_replicas => 2, 
     :analysis => { 
      :analyzer => { 
      :ticker_analyzer => { 
       "type"  => 'custom', 
       "tokenizer" => 'ticker_pattern', 
       "filter" => [ 'word_delimiter_filter', 'standard' ] 
      } 
      }, 
      :filter => { 
      :word_delimiter_filter => { 
       "type"    => 'word_delimiter', 
       "preserve_original" => true 
      } 
      }, 
      :tokenizer => { 
      :ticker_pattern => { 
       "type"  => 'pattern', 
       "pattern" => '\w+' 
      } 
      } 
     } do 
    mapping do 
    # ... some more indexes that work fine, with regular analyzers 
    indexes :company_ticker,  type: 'string', boost: 5.0, analyzer: 'ticker_analyzer', as: 'index_company_ticker' 
    end 
end 

그래서 오류 Analyzer [ticker_analyzer] not found for field [company_ticker]가 표시됩니다.

왜 그런가?

또한 블록을 settings 옵션으로 전달할 필요가없는 몇 가지 예를 살펴 보았습니다. 나는 단지 settings을 닫고 나중에 mapping을 정의 할 것이다. (다른 사람들이 코드 스 니펫을 게시하는 것을 보았습니다 ...)

고마워요!

-Vlad

+0

여기에서 모델을 따랐습니다 : https://github.com/karmi/tire#activemodel-integration. 그것은 나를 위해 일하는 것 같지 않습니다 ... 어쩌면 내가 뭔가 잘못하고있는 것일까 요? – vburca

답변

3
좋아

, 그래서 이것은 내가 가졌다 왜이 작동되지 않은 실제 문제입니다.
내가

index = Tire::Index.new('swap_index') 
index.create(:mappings => MyModel.tire.mapping_to_hash) 
index.import(mymodel_entries) 
# and then do some swapping between the old index and the new one, through alias'es 

음처럼 뭔가이 모델에서 매핑을 사용 (나는 Model.create_elasticsearch_index을하려고하지 않은) 그러나 것 인덱스를 만들려고하기 때문이다, 문제는 내가이었다이었다 내 새 색인에 settings을 전달하지 않았습니다. 나는 mappings을 MyModel에서만 전달했지만 settings은 전달하지 않았습니다. 그래서, 그것을 할 올바른 방법이

index.create(:settings => MyMode.tire.settings, :mappings => MyModel.tire.mapping_to_hash) 

를 SI 이것은 내가지고 있다고 오류를 해결합니다.

(분석기가 내 경우에 파괴 될 수 있기 때문에 내 예를 여전히 내 경우에는 작동하지 않습니다,하지만 난 그냥 비슷한 문제가있을 수 있습니다 사용자 돕고 싶었)

가 감사를,
블라드

관련 문제