を登録する私は、フルテキスト検索のための私のアプリケーションでElasticSearchを使用しようとしていると、この時点で私が使用autocomplete analyserしようとしている:私のアプリケーションを用いて構築されたとして春・データ・elasticsearch - カスタム・アナライザ
{
"settings": {
"number_of_shards": 1,
"analysis": {
"filter": {
"autocomplete_filter": {
"type": "edge_ngram",
"min_gram": 1,
"max_gram": 20
}
},
"analyzer": {
"autocomplete": {
"type": "custom",
"tokenizer": "standard",
"filter": [
"lowercase",
"autocomplete_filter"
]
}
}
}
}
}
を春は、私はこの方法を使用する春データelasticsearchを決めたし、私のエンティティをマッピングしました:
@Document(indexName = "estabelecimento")
@Setting(settingPath = "/elasticsearch/autocomplete-analyser.json")
public class ESEstabelecimento {
private Long id;
@Field(type = FieldType.String, indexAnalyzer = "autocomplete")
private String nome;
private String razaoSocial;
private String tipoEstabelecimento;
@Field(type = FieldType.Object)
private ESCidade cidade;
}
はしかし、elasticsearchは、カスタム・アナライザをロードしていません。
[DEBUG] org.elasticsearch.action.admin.indices.mapping.put - [Magus]がインデックス[[estabelecimento]]にマッピングを配置できませんでした。[esestabelecimento] org.elasticsearch.index.mapper.MapperParsingException:フィールド[nome]のアナライザー[オートコンプリート]が見つかりません org.elasticsearch.index.mapper.core.TypeParsers.parseField(TypeParsers.java:220)〜[elasticsearch-1.5.2.jar:na] at org.elasticsearch .index.mapper.core.StringFieldMapper $ TypeParser.parse(StringFieldMapper.java:153)〜[elasticsearch-1.5.2.jar:na] at org.elasticsearch.index.mapper.object.ObjectMapper $ TypeParser.parseProperties(ObjectMapper .java:290)〜[elasticsearch-1.5.2.jar:na] 、org.elasticsearch.index.mapper.object.ObjectMapper $ TypeParser.parseObjectOrDocumentTypeProperties(ObjectMapper.java:214)〜[elasticsearch -1.5.2.jar:na] at org.elasticsearch.index.mapper.object.RootObjectMapper $ TypeParser.parse(RootObjectMapper.java:136)〜[elasticsearch-1.5.2.jar:na] at org.elasticsearch .index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:211)〜[elasticsearch-1.5.2.jar:na] at org.elasticsearch.index.mapper.DocumentMapperParser.parseCompressed(DocumentMapperParser.java:192)〜[elasticsearch -1.5.2.jar:na] at org.elasticsearch.index.mapper.MapperService.parse(MapperService.java:434)〜[elasticsearch-1.5.2.jar:na] at org.elasticsearch.cluster.metadata .MetaDataMappingService $ 4.execute(MetaDataMappingService.java:505)〜[elasticsearch-1.5.2.jar:na] (org.elasticsearch.cluster.service.InternalClusterService)$ UpdateTask.run(InternalClusterService.java:365)〜[elasticsearch- 1.5.2.jar:na]org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor $ TieBreakingPrioritizedRunnableで :org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor $ TieBreakingPrioritizedRunnable.runAndClean(PrioritizedEsThreadPoolExecutor.java:188)[NA elasticsearch-1.5.2.jar]で.run(PrioritizedEsThreadPoolExecutor.java:158)[elasticsearch-1.5.2.jar:na] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[na:1.8.0_77] at java.util .concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617)[na:1.8.0_77] java.lang.Thread.run(Thread.java:745)[na:1.8.0_77] [エラー] org .springframework.data.elasticsearch.repository.support.AbstractElasticsearchRepository - elasticsearchノードのロードに失敗しました:org.elasticsearch.index.mapper.MapperParsingException:Analyzer [a utocomplete]フィールド[ノーム]
私は、問題の原因を特定することはできませんが見つかりません、私はアナライザが無効であるかどうかを知りませんかさえelasticsearchオートコンプリート-analyser.jsonファイルを見つけました。これをどうすれば解決できますか?
試用の間にインデックスを削除しましたか?インデックスがまだ作成されていない場合にのみ作成されます。インデックスが既に存在する場合は、設定を更新しません。最初に索引を削除し、春にそれを再作成させます。また、GET/estabelecimento/_settingsを使用して設定をチェックすることもできます。多分それはいくつかの洞察を与えます。 –