Używam klejnotu elasticsearch-rails w mojej aplikacji Rails, aby uprościć integrację z Elasticsearch. Próbuję użyć phonetic analysis plugin, więc muszę zdefiniować niestandardowy analizator i niestandardowy filtr dla mojego indeksu.Custom Analyzer elasticsearch-rails
Próbowałem ten kawałek kodu w celu przeprowadzenia analizy niestandardowej z soundex filtrem fonetycznej, ale nie jest on z wiadomości wyjątek:
[!!!] Błąd podczas tworzenia indeksu: Elasticsearch: : Transport :: Transport :: Błędy :: BadRequest [400] {"Błąd": "MapperParsingException [odwzorowanie [call_sentence]]; zagnieżdżone: MapperParsingException [Analyzer [{tokenizer = standard, filter = [standard, małe litery, metaphoner]} nie znaleziono dla pola [fonetycznego]]; "," status ": 400}
# Set up index configuration and mapping
#
settings index: { number_of_shards: 1, number_of_replicas: 0 } do
mapping do
indexes :text, type: 'multi_field' do
indexes :processed, analyzer: 'snowball'
indexes :phone, {analyzer: {
tokenizer: "standard",
filter: ["standard", "lowercase", "metaphoner"]
}, filter: {
metaphoner: {
type: "phonetic",
encoder: "soundex",
replace: false
}
}}
indexes :raw, analyzer: 'keyword'
end
end
end