[ES]Busca la diferencia entre match_phrase y comodines.
Se buscarán oraciones que contengan hola mundo:
En otras palabras, hola mundo debe ser adyacente.
Mire otro ejemplo:
Esta búsqueda de hola es mundo también se buscará porque el número de palabras en el intervalo medio es 1
Proceso de implementación:
p>Flujo de ejecución de Match_phrase:
1. Divida la palabra como una búsqueda de coincidencias,
2. Busque en el campo palabras segmentadas (varias coincidencias de $term). ). Este paso devuelve el documento correspondiente a cada palabra y la posición de estas palabras en el documento correspondiente.
3. Filtre los documentos devueltos en el primer paso y encuentre documentos donde cada palabra esté en el mismo campo.
4. Filtre nuevamente los documentos filtrados en el tercer paso y seleccione los documentos cuya ubicación cumpla con los requisitos. Por ejemplo, para match_phrase, se encuentra que la posición de la última palabra es 1 mayor que la posición de la palabra anterior. O el número de movimientos
5. La coincidencia aproximada (usando ranura) tiene el mismo principio, excepto que la cuarta posición se filtra de una manera diferente.
Por ejemplo, busque "hola mundo"
Principio de prefijo:
Es necesario recorrer todos los índices invertidos y comparar si cada $term termina con inicio del prefijo especificado.
Por ejemplo,
Proceso de búsqueda:
Para admitir la coincidencia de prefijos, la consulta realiza las siguientes operaciones:
Si hay muchos consultas que comienzan con w1 $term al principio, se producirán graves problemas de rendimiento. Pero si $term es pequeño, puedes usarlo de forma segura.
Esto también significa que debemos prestar atención a los mismos problemas de rendimiento que las consultas de prefijo. La ejecución de estas consultas puede consumir muchos recursos, por lo que debemos evitar el uso de coincidencias de patrones como la ambigüedad izquierda (como, por ejemplo). foo o .foo).
Nota:
Las consultas con prefijos, comodines y regrep se basan en términos. Si los usamos para consultar un campo analizado, examinarán cada término del campo en lugar de tratar el campo como un todo.
Esta consulta se comporta igual que la consulta match_phrase, excepto que utiliza la última palabra de la cadena de consulta como prefijo.
Por ejemplo:
Al igual que match_phrase, también puede aceptar el parámetro slop para hacer que la posición del orden relativo de las palabras sea menos estricta:
Podemos limitarlo estableciendo el parámetro max_expansions Efecto de la expansión del prefijo, un valor razonable podría ser 50:
El parámetro max_expansions controla el número de palabras que pueden coincidir con el prefijo.
Otro método de búsqueda en tiempo real es utilizar la coincidencia parcial de Ngram, lo que aumentará la sobrecarga de la indexación, pero acelerará la consulta. Puedes comprobarlo tú mismo.