Ho una query multi_match
di tipo cross_fields
, che voglio migliorare con la corrispondenza del prefisso.Ricerca elastica multi_match prefisso cross_fields
{
"index": "companies",
"size": 25,
"from": 0,
"body": {
"_source": {
"include": [
"name",
"address"
]
},
"query": {
"filtered": {
"query": {
"multi_match": {
"type": "cross_fields",
"query": "Google",
"operator": "and",
"fields": [
"name",
"address"
]
}
}
}
}
}
}
Si sta abbinando perfettamente su query come il google mountain view
. L'array filtered
è lì perché ho bisogno di aggiungere dinamicamente i filtri geografici.
{
"id": 1,
"name": "Google",
"address": "Mountain View"
}
Ora voglio permettere corrispondenza prefisso, senza rompere cross_fields
.
query come questi devono corrispondere:
goog
google mount
google mountain vi
mountain view goo
Se cambio la multi_match.type
-phrase_prefix
, corrisponde l'intera query un singolo campo, quindi corrisponde solo a mountain vi
ma non a google mountain vi
Come posso risolvere questo?
Molto utile per quello che volevo, grazie. – Abubakkar