Ricerca di nomi (testo) con spazi in esso, causando problema per me, devo mappatura simile aCerca nome (testo) con spazi in elasticsearch
"{"user":{"properties":{"name":{"type":"string"}}}}"
Idealmente quello che dovrebbe tornare e risultati di rango come segue
1) Bring on top names that exact match the search term (highest score)
2) Names that starts with the search term (high score)
3) Names that contains the exact search term as substring (medium score)
4) Names that contains any of the search term token (lowest score)
Esempio Per le seguenti nomi in elasticsearch
Maaz Tariq
Ahmed Maaz Tariq
Maaz Sheeba
Maaz Bin Tariq
Sana Tariq
Maaz Tariq Ahmed
Ricerca di "Maaz Tariq", I risultati devono essere in ordine
Maaz Tariq (highest score)
Maaz Tariq Ahmed (high score)
Ahmed Maaz Tariq (medium score)
Maaz Bin Tariq (lowest score)
Maaz Sheeba (lowest score)
Sana Tariq (lowest score)
Può qualunque punto me come e quali analizzatori da utilizzare in seguito? e come classificare i risultati della ricerca per i nomi?
lo farei preferire una soluzione basata su filtri ma non ho trovato il filtro giusto per il 3. requisito. – Ivaldi
È sufficiente creare una query a frase. Inoltre, non capisco perché hai bisogno di una query custom_boost_factor. Non puoi semplicemente dare un peso diverso alle tue diverse query usando l'opzione 'boost'? – javanna
'Boost' non è consentito in una sub query' should' !? (Almeno non conosco la sintassi per questo.) E come funziona un filtro di query frase senza la query 'span_near' e senza la query' match_phrase'? – Ivaldi