Colección de citas famosas - Slogan de motivación - Existen cuatro principios para utilizar la concordancia es: concordancia de frases, concordancia aproximada de pendiente, recomendación de búsqueda, etc.

Existen cuatro principios para utilizar la concordancia es: concordancia de frases, concordancia aproximada de pendiente, recomendación de búsqueda, etc.

Para consultas coincidentes, solo se pueden encontrar documentos que contengan java y spark, pero no se sabe si java y spark están cerca.

Se devolverán los documentos que contengan java o spark, o los documentos que contengan java y spark. Realmente no sabemos cuál se acerca más entre doc, java y spark. Si solo queremos buscar Java Spark y no se pueden insertar otros caracteres en el medio o solo se pueden separar varios caracteres en el medio, ¿se puede hacer una búsqueda de texto completo en este momento? La respuesta es no.

Dos requisitos:

1. Java Spark, muy juntos, no se pueden insertar otros caracteres en el medio, por lo que se buscará este documento.

2. Java Spark, pero cuanto más cercanas estén las dos palabras Java y Spark, mayor será la puntuación del documento y mayor será la clasificación.

La concordancia de fase es la concordancia de frases, buscando frases en su conjunto.

3. Posición temporal después de la segmentación de palabras

De los resultados, podemos ver que la posición temporal de hello es 0, world y java spark son 1, 2 y 3 en. orden.

4. Principio de búsqueda de frases (lo mismo ocurre con la búsqueda aproximada)

Hola mundo, java spark doc1

Hola, spark java doc2

Hola doc1(0)

wolrd doc1(1)

documento java 1(2) documento 2(2)

documento spark 1(3) ) Archivo 2(1)

Java spark-> Frases coincidentes

Java spark->Java y spark

Java-> )Archivo2(2)

spark->Archivo1(3)Archivo2(1)

Para encontrar los documentos que tiene cada $term, necesitas Un documento que debe contener cada $term antes de que puedas sacarlo y continuar el cálculo.

doc 1->Java y Spark->La posición de Spark es mayor que Java 1->La posición de Java es 2 y la posición de Spark es 3, lo que simplemente cumple con las condiciones y doc1 cumple con condiciones.

Documento 2 ->Java y Spark-& gt; La posición de Java es 2, la posición de Spark es 1, la posición de Spark es 1 más pequeña que la posición de Java, no 1->; no está satisfecho, entonces doc2 no coincide.

Los principios de búsqueda aproximados similares son los mismos.

¿Qué significa pendiente? La búsqueda de texto, donde hay varios términos $, debe seguir varios pasos para coincidir con un documento, y la cantidad de pasos es grande. En pocas palabras, es la distancia entre Java y Spark después del intercambio o la distancia entre Java y Spark + 2 (donde 2 es el número de pasos necesarios para el intercambio). En la búsqueda inclinada, cuanto más cercanas estén las palabras clave, mayor será la puntuación de relevancia.

Por ejemplo, si busca java spark, contiene java, o contiene spark, o ambos, y contiene el documento de java spark tanto como sea posible, o java y spark están cerca, ocupando el primer lugar, y al mismo tiempo Proporciona recuerdo y precisión.

La búsqueda directa con la frase match_phrase hará que todos los $terms aparezcan en el campo del documento y la distancia debe estar dentro del rango de inclinación para que coincida.

En este momento, puede usar bool combinado con la consulta de coincidencia y la consulta match_phrase para lograr el efecto anterior.

Coincidencia -& gt; Siempre que se realice una coincidencia simple en un $term, se puede entender que el resultado devolverá el documento correspondiente a $term, escaneará el índice invertido y será ok después de escanear.

Coincidencia de fases -> Primero, escanee todas las listas de documentos en busca de $term, busque una lista de documentos que contengan todos los $term y luego calcule para cada documento la posición de cada $term; El rango; Slop, requiere operaciones complejas para determinar si un documento se puede mover y combinar con slop.

El rendimiento de las consultas de concordancia es mucho mayor que el de la concordancia de frase y la concordancia de proximidad (con pendiente). Porque los dos últimos necesitan calcular la distancia de la posición.

El rendimiento de las consultas de concordancia es 10 veces mejor que la concordancia de frase y 20 veces mejor que la concordancia de proximidad.

De forma predeterminada, la coincidencia puede coincidir con 1000 documentos. Es necesario calcular la igualación aproximada una vez para cada DOC para determinar si puede igualarse mediante slop y luego contribuir con su propia puntuación.

Pero en muchos casos, puede haber 65.438+0.000 documentos después de cotejar. De hecho, la mayoría de los usuarios buscan por página, por lo que solo pueden leer las primeras páginas como máximo. Por ejemplo, si una página es 10, pueden leer como máximo cinco páginas, lo que equivale a 50 páginas.

La coincidencia aproximada solo necesita hacer coincidir los primeros 50 documentos mediante el movimiento de pendiente y aportar su propia puntuación. No es necesario calcular ni aportar los 1000 documentos.

Coincidencia: 1000 documentos, de hecho, cada documento tiene una puntuación en este momento; coincidencia aproximada, 50 documentos principales, puntos importantes que hacen que los 50 documentos principales y los ejemplos de $term sean más cercanos y destacados.

1, búsqueda de prefijo

C3D0-KD345

C3K5-DFG65

C4I8-UI365

C3- >;Lo anterior Se buscan dos:>Buscar según el prefijo de la cadena

No hay antecedentes de caso en la publicación, porque es relativamente simple. Simplemente muéstreles a todos el nuevo índice que creó manualmente.

2. Principio de la búsqueda de prefijo

La consulta de prefijo no calcula la puntuación de relevancia y la única diferencia con el filtro de prefijo es el conjunto de bits de caché del filtro.

Por ejemplo, escanee todo el índice invertido.

Cuanto más corto sea el prefijo, más documentos se procesarán y peor será el rendimiento. Intente buscar con prefijos largos.

¿Cómo se realiza la búsqueda de prefijos? ¿Por qué el rendimiento es pobre?

Competencia

C3-D0-KD345

C3-K5-DFG65

C4-I8-UI365

Búsqueda de texto completo

Cada cadena debe estar segmentada.

c3 doc1, doc2

d0

kd345

k5

dfg65

El cuarto componente del complemento es deficiente

i8

ui365

C3->; Escanee el índice invertido->; porque solo 2 documentos tienen c3, ya encontrados ->No es necesario seguir buscando otros $term

Las puntuaciones de las coincidencias tienden a ser altas.

Si es una búsqueda por prefijo, entonces (la búsqueda por prefijo no es segmentación de palabras)

C3-D0-KD345

C3-K5-DFG65

C4-I8-UI365

C3->; primero escaneé c3-D0-KD345 y fue genial. Encontré una cadena con el prefijo C3 -> Todavía tengo que continuar buscando, porque hay otro c3-K5-DFG65 detrás de ella, y puede haber muchas otras cadenas con el prefijo C3 -> Escaneaste una coincidencia El prefijo de $ término,

no se puede detener, la búsqueda debe continuar -& gt; no se puede completar hasta que se escanee todo el índice invertido, por lo que el rendimiento del prefijo es muy pobre.

3. Búsqueda con comodines

Similar a la búsqueda por prefijo, pero más potente.

C3D0-KD345

C3K5-DFG65

C4I8-UI365

5 caracteres -D cualquier número de caracteres 5

5?-*5: comodín para expresar una semántica de búsqueda difusa más compleja.

? :Cualquier carácter

*: 0 o cualquier número de caracteres

El rendimiento también es muy pobre y se debe escanear todo el índice invertido para que esté bien.

4. Búsqueda general

C[0-9]. +

[0-9]: Números dentro del rango especificado.

[a-z]: Letras en el rango especificado.

. : un personaje.

+: La expresión regular anterior puede aparecer una o varias veces.

Los comodines y las expresiones regulares cumplen con el principio de prefijo y ambos escanean todo el índice, lo que genera un rendimiento deficiente.

Ingrese hola y pensará en hola mundo, hola nosotros, hola ganar, hola viento, etc.

El principio es similar a match_phrase, la única diferencia es que el último término $ se utiliza como prefijo para la búsqueda.

Hola, estoy buscando y buscando los archivos correspondientes

Con w como prefijo, se escaneará todo el índice invertido y se encontrarán todos los documentos que comiencen con w.

Luego busque todos los documentos, es decir, los documentos que contengan caracteres que comiencen con hola y w.

Calcule en función de su pendiente y vea si puede hacer que hello w coincida con la posición de las palabras que comienzan con hola y W en el documento dentro del rango de pendiente.

También se puede especificar Slop, pero solo se usará el último $term como prefijo

Max_expansions: especifica el número máximo de $terms que coincide con el prefijo si el número excede. este número, la coincidencia ya no continuará. Esto limita el rendimiento.

De forma predeterminada, el prefijo debería escanear todos los $terms en el índice invertido en busca de palabras que comiencen con w, pero esto es terrible. Puede usar max_expansions para limitar cuántos $terms coincide como máximo con el prefijo w, de modo que no se continúe buscando en el índice invertido.

Intente no usarlo, porque el último prefijo siempre necesita escanear una gran cantidad de índices y el rendimiento puede ser deficiente. Puede usar ngram para lograrlo.

¿Qué es ngram?

Rápido, ngram de cinco longitudes

ngram length=1, q u i c k

ngram length=2, qu ui ic ck

ngram length=3, clic rápido

ngram length=4, quic uick

ngram length=5, rápido

¿Qué es edgngram?

Rápido, después de la primera letra está ngram.

q

Quart (abreviatura de quart)

qui

Quick

Quick

Rápido

p>

-La recomendación de búsqueda no está completa. . . . . . . . .