Tengo un índice de búsqueda de MongoDB Atlas con el tipo de autocompletar en un nombre de campo y los siguientes atributos:
maxGrams : 15 minGrams : 2 tokenization: edgeGram fold diacritics: trueLa colección contiene los siguientes nombres:
The American The American Equity Underwriters The American Prairie Foundation The American Conservatory Theater The American ClubCon esta consulta de autocompletar:
{ autocomplete: { query: 'The American', path: 'name' } }Puedo recuperar todos los nombres anteriores con la siguiente puntuación de búsqueda:
The American Conservatory Theater -> 15.474836349487305 The American Equity Underwriters -> 15.379003524780273 The American Prairie Foundation -> 15.379003524780273 The American Club -> 15.271049499511719 The American -> 13.68109130859375Incluso si The America es la coincidencia exacta, obtiene una puntuación más baja.
¿Por qué la puntuación de búsqueda de la coincidencia exacta está por debajo de las demás?
Como solución encontré algo como:
{ "compound": { "should": [ { "phrase": { "query": "The American", "path": "name", "score": { "boost": {"value": 5}} }}, { "autocomplete": { "query": "The American", "path": "name"} } ] } }El aumento de puntaje en la coincidencia de frase manejará la coincidencia exacta y hará que la puntuación de coincidencia exacta sea más alta que otras.