Je veux laisser un champ indexé par différents analyseurs my_analyzer_1
et my_analyzer_2
, ressemble à:ElasticSearch - spécifier différents index et analyseurs recherche pour un champ
{
"settings": {
"analysis": {
"analyzer": {
"my_analyzer_1": {
"type":"custom",
"tokenizer": "keyword"
},
"my_analyzer_2": {
"type":"custom",
"tokenizer": "standard"
}
}
}
},
"mappings": {
"Names": {
"properties": {
"name": {
"type": "string",
// Is it possible?
"analyzer": "my_analyzer_1, my_analyzer_2"
}
}
}
}
}
Et quand la recherche, spécifiez manuellement l'utilisation my_analyzer_1
ou my_analyzer_2
.
Cela signifie, pour fox brown
, la recherche par terme fox
. Lors de l'utilisation my_analyzer_1
ne sera pas fox brown
parce que fox brown
est analysé comme un terme en raison de keyword tokenizer. Tout en utilisant my_analyzer_2
l'obtiendra parce qu'il est analysé comme 2 termes fox
et brown
.
Elasticsearch permet de spécifier search_analyzer et index_analyzer, mais il semble qu'il ne permet que de spécifier single search_analyzer et single index_analyzer.
Est-ce que mon exigence est possible avec Elasticsearch?
(Une solution consiste à utiliser 2 champs, une utilisation keyword
Tokenizer et une autre utilisation standard
Tokenizer)
'multifield' est une option pour vous. – Richa