La búsqueda de texto La característica en MongoDB (como en 2.6) no tiene características integradas para la coincidencia parcial/parcial de cadenas. Como habrás notado, el caso de uso se centra actualmente en el soporte de lenguaje y lematización con operadores booleanos básicos y coincidencia de palabras/frases.
Hay varios enfoques posibles a considerar para la coincidencia aproximada según sus requisitos y cómo desea calificar "eficiente" (velocidad, almacenamiento, tiempo del desarrollador, infraestructura requerida, etc.):
-
Implemente soporte para coincidencia parcial/parcial en la lógica de su aplicación utilizando algunos de los algoritmos de similitud y similitud de sonido fácilmente disponibles. Los beneficios de este enfoque incluyen no tener que agregar ninguna infraestructura adicional y poder ajustar de cerca la coincidencia con sus requisitos.
Para obtener algunos ejemplos más detallados, consulte:Efficient Técnicas para coincidencia parcial y parcial en MongoDB .
-
Integrar con una herramienta de búsqueda externa que proporciona funciones de búsqueda más avanzadas. Esto agrega algo de complejidad a su implementación y es probable que sea excesivo solo para escribir con anticipación, pero puede encontrar otras funciones de búsqueda que le gustaría incorporar en otra parte de su aplicación (por ejemplo, "como esto", proximidad de palabras, búsqueda por facetas, ..).
Por ejemplo, consulte:Cómo realizar Coincidencia aproximada con Mongo Connector y Elastic Search . Nota:consulta difusa se basa en la distancia de Levenshtein.
-
Use una biblioteca de autocompletado como el código abierto de Twitter
typeahead.js
, que incluye un motor de sugerencias y una API de consulta/caché. La escritura anticipada es en realidad complementaria a cualquiera de los otros enfoques de back-end, y su motor de sugerencias (opcional) Sabueso admite la captación previa y el almacenamiento en caché de datos en el almacenamiento local.