Pregunta

Estamos utilizando SOLR para buscar artículos de varias longitudes. Indexamos tanto los metadatos descriptivos (título, autor, categoría, palabras clave, etc.) como el texto completo del artículo. No aumentamos la relevancia en el tiempo de índice: todos los aumentos se realizan en el momento de la consulta (usamos Dismax, junto con varios aumentos QF, PF y BF).

Actualmente nuestro campo FullText usa el estándar omitnorms = false; Y como resultado, todos los artículos más cortos y más cortos (artículos de pulgada de 2-3 columnas) con frecuencia tendrán una mayor relevancia que los artículos de larga duración (múltiples páginas).

En nuestro caso, la longitud del artículo es un indicador significativo de relevancia, por lo que estoy considerando establecer omitnorms = true en nuestro campo de texto completo.

Preguntas: 1. ¿Por qué es el comportamiento predeterminado de Lucene/Solr para aumentar las longitudes de campo más cortas en mayores? ¿Cuál es el razonamiento? 2. ¿Por qué no querría omitirnorms? No necesito aumentar las consultas en este campo en particular, ni utilizar ningún tipo de faceta en este campo.

¿Fue útil?

Solución

Pregunta 1:

El aumento de las longitudes de campo más cortas en longitudes de campo más altas tiene que ver con un concepto fundamental de determinar la relevancia del documento llamado TF-IDF (ver http://en.wikipedia.org/wiki/tf%E2%80%93IDF). Como un breve ejemplo, considere que su búsqueda devolvió dos documentos: el primero es de 100 palabras y la segunda es 1,000 palabras. Cada uno contiene su palabra clave de búsqueda solo una vez. Dado que la palabra clave en el primer documento era del 1% del texto, se considera que el documento corto es más relevante para su búsqueda que el documento largo, donde la palabra clave que buscó fue solo el 0.1% del texto.

Pregunta 2:

Parece que según sus requisitos, es posible que desee intentar omitir las normas. Sin embargo, esto puede sesgar sus resultados de búsqueda de formas que no espera. Podría ser que se haya beneficiado de algunas de las buenas propiedades de la normalización de longitud y no se haya dado cuenta. Otro enfoque podría ser almacenar la longitud del documento como algún tipo de campo de etiquetas, como etiquetar los documentos como "corto", "medio" y "largo" y luego aumentar los documentos que coinciden en largo o largo y mediano o lo que sea. Esto también les daría a sus usuarios finales la capacidad de filtrar la longitud del documento cuando buscan.

Una vez más, cuando menciono buenas propiedades de la normalización de longitud, puede pensar en casos en los que existe un artículo súper largo que toca 10 temas diferentes, 1 de los cuales coincide con la búsqueda del usuario o existe un artículo largo que habla sobre 1 tema, el único. Eso fue buscado. En este caso, probablemente preferiría el artículo largo sobre el artículo súper largo (incluso si el artículo súper largo coincidía con la palabra clave de búsqueda más veces). Todo depende más de sus datos y sus casos de uso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top