Exécution de la version élastique 1.6Analyseur personnalisé ne fonctionne pas dans elasticsearch
J'essaie de définir un analyseur personnalisé pour mon index dans elasticsearch. Mon index/a des propriétés qui contiennent des accents et des caractères spéciaux.
Comme l'un de mes noms de propriété a une valeur comme ceci, "name" => "Esta loca". donc ce que je veux réaliser est, chaque fois que je suis en train de chercher de cette façon, http://localhost:9200/tutorial/helloworld/_search?q=esta
j'obtenir le résultat pour « Está loca ». Je suis passé par le lien suivant et configuré l'analyseur nécessaire qui est expliqué dans le lien. https://www.elastic.co/guide/en/elasticsearch/guide/current/asciifolding-token-filter.html
curl -XPUT 'localhost:9200/tutorial?pretty' -H 'Content-Type: application/json' -d'
{
"mappings":{
"helloworld":{
"properties": {
"name": {
"type": "string",
"analyzer": "standard",
"fields": {
"folded": {
"type": "string",
"analyzer": "folding"
}
}
}
}
}
},
"settings": {
"analysis": {
"analyzer": {
"folding": {
"tokenizer": "standard",
"filter": [ "lowercase", "asciifolding" ]
}
}
}
}
}'
J'ai configuré ce tout en créant l'index et fait quelques entrées comme celui-ci pour le test,
curl -X POST 'http://localhost:9200/tutorial/helloworld/1' -d '{ "name": "Está loca!" }'
curl -X POST 'http://localhost:9200/tutorial/helloworld/2' -d '{ "name": "Está locá!" }'
mais en cherchant comme ça, http://localhost:9200/tutorial/helloworld/_search?q=esta rien ne se passe. Je veux juste quand un utilisateur recherche dans toutes les langues, par exemple en anglais, il devrait obtenir le même résultat. S'il vous plaît, n'importe qui peut vous aider, comment puis-je y arriver pendant une semaine?
folding_index1 <- qu'est-ce? Est-ce mon nom d'index, c'est-à-dire "tutorial"? –
Il me donne erreur suivante lors de la création d'index dans curl, {"erreur": "MapperParsingException [mappage [helloworld]]; imbriqué: ElasticsearchParseException [fielddata doit être un hachage mais était de type: class java.lang.Boolean] ; "," status ": 400} –
ouais c'est le nom que j'ai utilisé pour ma référence. J'ai changé les mappings, on dirait que vous utilisez une ancienne version d'élastique. J'ai ajouté fielddata boolean pour mon débogage du tokenizer. devrait fonctionner maintenant – user3775217