Tak więc ElasticSearch ma zapytanie, które pozwala mi podać wiele wartości i zwrócić dokumenty, w których pole X pasuje do dowolnej z tych wartości.Jak wykonać wiele wartości "dopasuj" lub "dopasuj" w ElasticSearch
Ale chcę zrobić to samo z match_phrase - tj. Dokumenty zwracane, w których pole X zawiera dopasowanie nierozróżniające wielkość liter dla spacji. Obecnie robię to za pomocą filtra lub filtru (patrz poniżej). Ale wydaje mi się to bardzo gadatliwym sposobem robienia tego, co chcę, biorąc pod uwagę, że terminy działają już podobnie.
Obecna metoda
Wydaje się absurdalne, że zapytanie szukają pojedynczego pola dla jednego z trzech wartości powinny być długie 33 linie.
{
"query": {
"filtered": {
"filter": {
"or": {
"filters": [
{
"query": {
"match_phrase": {
"myField1": "My first search phrase"
}
}
},
{
"query": {
"match_phrase": {
"myField1": "My second search phrase"
}
}
},
{
"query": {
"match_phrase": {
"myField1": "My third search phrase"
}
}
}
]
}
}
}
}
}