Agradecemos tu ayuda para extender nuestros tutoriales sobre las ciencias informáticas.
Solución:
Puede utilizar el tipo de campo múltiple, un bool consulta y la consulta de factor de impulso personalizado para resolver este problema.
Cartografía:
"mappings" :
"user" :
"properties" :
"name":
"type": "multi_field",
"fields":
"name": "type" : "string", "index": "analyzed" ,
"exact": "type" : "string", "index": "not_analyzed"
Consulta:
"query":
"bool":
"must": [
"match":
"name": "Maaz Tariq"
],
"should": [
"custom_boost_factor":
"query":
"term":
"name.exact": "Maaz Tariq"
,
"boost_factor": 15
,
"custom_boost_factor":
"query":
"prefix":
"name.exact": "Maaz Tariq"
,
"boost_factor": 10
,
"custom_boost_factor":
"query":
"match_phrase":
"name":
"query": "Maaz Tariq",
"slop": 0
,
"boost_factor": 5
]
editar:
Como señaló javanna, el custom_boost_factor
no es necesario
consulta sin custom_boost_factor
:
"query":
"bool":
"must": [
"match":
"name": "Maaz Tariq"
],
"should": [
"term":
"name.exact":
"value": "Maaz Tariq",
"boost": 15
,
"prefix":
"name.exact":
"value": "Maaz Tariq",
"boost": 10
,
"match_phrase":
"name":
"query": "Maaz Tariq",
"slop": 0,
"boost": 5
]
valoraciones y reseñas
Te invitamos a patrocinar nuestra misión exponiendo un comentario y puntuándolo te damos las gracias.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)