Ich versuche Elasticsearch in meiner Bewerbung für Volltextsuche und zu diesem Zeitpunkt zu verwenden Ich versuche Verwendung autocomplete analyser:Feder-data-Elasticsearch - Registrierung eigener Analysator
{
"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"
]
}
}
}
}
}
Da meine Anwendung konstruiert wurde mit Frühling, ich habe den Einsatz Frühling-data-Elasticsearch entschieden und kartiert mein Unternehmen auf diese Weise:
@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;
}
jedoch Elasticsearch nicht lädt den eigenen Analysator:
[DEBUG] org.elasticsearch.action.admin.indices.mapping.put - [Magus] konnte keine Mappings auf Indizes setzen [[estabelecimento]], type [esestabelecimento] org.elasticsearch.index.mapper.MapperParsingException: Analyzer [autocomplete] wurde nicht gefunden für field [nome] bei org.elasticsearch.index.mapper.core.TypeParers.parseField (TypeParsers.java:220) ~ [elasticsearch-1.5.2.jar: na] bei org.elasticsearch .index.mapper.core.StringFieldMapper $ TypeParser.parse (StringFieldMapper.java:153) ~ [Elasticsearch-1.5.2.jar: na] bei org.elasticsearch.index.mapper.object.ObjectMapper $ TypeParser.parseProperties (ObjectMapper .java: 290) ~ [elasticsearch-1.5.2.jar: na] bei org.elasticsearch.index.mapper.object.ObjectMapper $ TypeParser.parseObjectOrDocumentTypeProperties (ObjectMapper.java:214) ~ [elasticsearch -1.5.2.jar: na] bei org.elasticsearch.index.mapper.object.RootObjectMapper $ TypeParser.parse (RootObjectMapper.java:136) ~ [elasticsearch-1.5.2.jar: na] bei org.elasticsearch .index.mapper.DocumentMapperParser.parse (DocumentMapperParser.java:211) ~ [Elasticsearch-1.5.2.jar: na] bei org.elasticsearch.index.mapper.DocumentMapperParser.parseCompressed (DocumentMapperParser.java:192) ~ [Elasticsearch -1.5.2.jar: na] bei org.elasticsearch.index.mapper.MapperService.parse (MapperService.java:434) ~ [Elasticsearch-1.5.2.jar: na] bei org.elasticsearch.cluster.metadata .MetaDataMappingService $ 4.Führen (MetaDataMappingService.java:505) ~ [Elasticsearch-1.5.2.jar: na] bei org.elasticsearch.cluster.service.InternalClusterService $ UpdateTask.run (InternalClusterService.java:365) ~ [elasticsearch- 1.5.2.jar: na] bei org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor $ TieBreakingPrioritizedRunnable.runAndClean (PrioritizedEsThreadPoolExecutor.java:188) [Elasticsearch-1.5.2.jar: na] bei org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor $ TieBreakingPrioritizedRunnable .run (PrioritizedEsThreadPoolExecutor.java:158) [elasticsearch-1.5.2.jar: na] bei java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142) [na: 1.8.0_77] bei java.util .concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617) [na: 1.8.0_77] bei java.lang.Thread.run (Thread.java:745) [na: 1.8.0_77] [FEHLER] org .springframework.data.elasticsearch.repository.support.AbstractElasticsearchRepository - Fehler beim Laden der elastischen Suchknoten: org.elasticsearch.index.mapper.MapperParsingException: Analyzer [a utocomplete] nicht für das Feld [nome gefunden]
ich die Ursache des Problems nicht erkennen kann, weiß ich nicht, ob der Analysator ungültig ist oder Elasticsearch fand sogar die Autocomplete-analyser.json Datei. Wie kann ich das lösen?
Haben Sie den Index zwischen den Versuchen entfernt? Es wird nur den Index erstellen, wenn er noch nicht vorhanden war. Wenn der Index bereits vorhanden war, werden die Einstellungen nicht aktualisiert. Entfernen Sie zuerst den Index und lassen Sie die Feder neu erstellen. Sie können die Einstellungen auch mit GET/aestelecimento/_settings überprüfen, vielleicht gibt das einen Einblick. –