ElasticSearch ha la capacità di copiare valori in altri campi (al momento dell'indice), consentendo di effettuare la ricerca su più campi come se si trattasse di un campo (Core Types: copy_to).Come specificare ElasticSearch copy_to order?
Tuttavia, non sembra esserci alcun modo per specificare l'ordine in cui questi valori devono essere copiati. Questo potrebbe essere importante quando l'abbinamento di frasi:
curl -XDELETE 'http://10.11.12.13:9200/helloworld'
curl -XPUT 'http://10.11.12.13:9200/helloworld'
# copy_to is ordered alphabetically!
curl -XPUT 'http://10.11.12.13:9200/helloworld/_mapping/people' -d '
{
"people": {
"properties": {
"last_name": {
"type": "string",
"copy_to": "full_name"
},
"first_name": {
"type": "string",
"copy_to": "full_name"
},
"state": {
"type": "string"
},
"city": {
"type": "string"
},
"full_name": {
"type": "string"
}
}
}
}
'
curl -X POST "10.11.12.13:9200/helloworld/people/dork" -d '{"first_name": "Jim", "last_name": "Bob", "state": "California", "city": "San Jose"}'
curl -X POST "10.11.12.13:9200/helloworld/people/face" -d '{"first_name": "Bob", "last_name": "Jim", "state": "California", "city": "San Jose"}'
curl "http://10.11.12.13:9200/helloworld/people/_search" -d '
{
"query": {
"match_phrase": {
"full_name": {
"query": "Jim Bob"
}
}
}
}
'
Viene restituito solo "Jim Bob"; sembra che i campi siano copiati nell'ordine alfabetico nome-campo.
Come passare l'ordine copy_to in modo da restituire la persona "Bob Jim"?
Che ha a che fare con la tua query, stai specificando che vuoi solo "Jim Bob" da restituire. Modifica la query in una query di corrispondenza ed entrambi verranno restituiti. O per essere più severo, crea una query bool con due clausole per entrambe le frasi, "Jim Bob" e "Bob Jim". –
Non sono sicuro che la mia domanda sia chiara; il campo generato da copy_to è chiaramente ordinato, è il campo generato che voglio cambiare, non la query. –
"Viene restituito solo" Jim Bob ", ovvero perché si sta cercando" Jim Bob ". Cambia il termine della tua ricerca in "Bob Jim" e quel documento verrà restituito. Ciò che non mi è chiaro è ciò che stai cercando di ottenere con l'ordine. –