Componentes personalizables de la consulta Solr final

Puede personalizar los componentes de la consulta Solr final utilizando analizadores de consulta. Un analizador de consultas es un componente responsable de analizar la consulta de texto y de convertirla en los objetos de consulta Lucene correspondientes.

Consulta máxima de disyunción (Dismax), texto de disyunción (varios campos) y coincidencia máxima (puntuación), busca cada par del campo o término por separado. A continuación, combina los resultados para calcular el valor de puntuación máxima de los resultados.

ExtendedDisMax añade las siguientes características encima de Dismax:

Coincidencia mínima

La coincidencia mínima proporciona flexibilidad cuando se utiliza el tipo de búsqueda ANY, donde puede especificar cuántas de las palabras clave de búsqueda deben coincidir con los documentos indexados. Un número indica el número de palabras clave de consulta que deben coincidir. Un número formulado con un porcentaje indica que debe coincidir un porcentaje de las palabras clave de consulta. Por ejemplo:
  • 1 indica que al menos una palabra clave de consulta debe coincidir.
  • 2<80% 6<50% indica que cuando hay menos de 3 palabras clave, ambas palabras claves deben encontrarse en el documento. Cuando hay de 3 a 6 palabras clave, el 80 % de las palabras clave deben encontrarse en el documento. Cuando hay más de 6 palabras, 50% de las palabras clave deben encontrarse en el documento.

    Por ejemplo, si un comprador busca 3 palabras clave, el 80% de las 3 palabras clave es igual a 2,4. Se devuelven los resultados que coinciden al menos con 2 de las 3 palabras clave entradas, redondeados hacia abajo.

    Importante: Debe utilizar la codificación de caracteres correcta cuando especifique valores de porcentaje en un archivo. Por ejemplo:
    • En un archivo de fragmentos JSP, como SearchSetup.jspf, el valor de porcentaje anterior se entra como está: 2<80% 6<50%.
    • En un archivo wc-component.xml, como en este caso, wc-component.xml, el valor de porcentaje anterior se especifica como: 2&lt;80% 6&lt;50%.
Para obtener más información, consulte Ajuste de relevancia de resultado de búsqueda de varias palabras utilizando la coincidencia mínima y el desplazamiento de frase.
Tenga en cuenta el comportamiento siguiente cuando se utiliza el tipo de búsqueda ANY:

Tipos de búsqueda y resultados

Tipo de búsqueda Resultados de búsqueda
ANY Busca red dress para devolver los resultados siguientes: red dress, red potato, red fish, dress shoes, dress shirt, dress belt.
ALL o EXACT Se devuelven los productos con campos de búsqueda indexada que contienen red y dress, pero no blue summer dress. Se devuelve red floral dress para el tipo de búsqueda ALL, pero no para el tipo de búsqueda EXACT, porque no es una búsqueda exacta.
Nota: Si define los sinónimos utilizando las asociaciones de términos de búsqueda en el Centro de gestión, la consulta del usuario se expande con sus sinónimos antes de pasarse a Solr. Entonces Solr aplica la coincidencia mínima en esta lista expandida, en lugar de la lista original. Este comportamiento produce resultados no deseados.
Tenga en cuenta las siguientes soluciones temporales o escenarios de negocio para personalizar el sitio si desea utilizar la coincidencia mínima y sinónimos:
  • Si no necesita la coincidencia mínima, pero necesita sinónimos: Configure los sinónimos utilizando asociaciones de términos de búsqueda en el Centro de gestión. Este flujo permite que cada tienda o sitio ampliado utilice su propia lista de sinónimos.
  • Si necesita la coincidencia mínima y sinónimos y tiene solo una tienda por catálogo maestro o todas las tiendas dentro del mismo catálogo maestro comparten la lista de sinónimos y no necesitan sinónimos de varias palabras o términos de sustitución, realice la tarea siguiente: Realice la siguiente tarea: Combinación de la coincidencia mínima con asociaciones de términos de búsqueda (utilizando el algoritmo de expansión Solr).

Campos de frase

Los campos de frase (pf) pueden aumentar la puntuación de los documentos cuando todos los términos del parámetro q aparecen en estrecha proximidad. Por ejemplo:

pf=name^10.0 defaultSearch^1.0 categoryname^100.0 shortDescription^5.0 partNumber_ntk^15.0

Desplazamiento de frase

El desplazamiento de frase (ps) especifica hasta qué punto están lejos los términos de búsqueda indexados en el documento para influir en la relevancia. Por ejemplo, las búsquedas sports movie con ps = 1 resultados en sports movie son más relevantes que sports is the type of a movie. El desplazamiento de frase define la cantidad de desplazamiento en las consultas de frase que se crean para los campos de frase (pf). Para obtener más información, consulte Ajuste de relevancia de resultado de búsqueda de varias palabras utilizando la coincidencia mínima y el desplazamiento de frase.

La HCL Commerce comprueba la coincidencia mínima y el desplazamiento de frase en el orden siguiente:
  1. Definido en la URL.
  2. Definido en el perfil de búsqueda.
  3. Definido en el archivo de configuración de componente de catálogo (wc-component.xml) en el EAR Search.

Campos bigrama de frase

Los campos bigrama de frase (Pf2) desglosan la entrada en bigramas. Por ejemplo, the brown fox jumped se consulta como the brown brown fox y fox jumped. Por lo tanto, si la frase de búsqueda es red hat black jacket, puede utilizar ps=0 con pf2 para asegurarse de que los productos que contienen red hats se impulsan antes que black hats.

Campos trigrama de frase

Los campos trigrama de frase (Pf3) desglosan la entrada en trigramas. Por ejemplo, the brown fox jumped se consulta como the brown fox brown fox jumped.

Desempatador

Los desempatadores se producen cuando se prueba un término de la entrada del usuario en varios campos y más de un campo coincide. Cada campo genera una puntuación diferente en función de lo común que sea la palabra en el campo (para cada documento relativo a todos los demás documentos). De forma predeterminada se utiliza la puntuación del campo con la puntuación máxima. Si dos documentos contienen una puntuación de coincidencia, el parámetro de empate decide qué campo rompe el empate. Cuando se especifica un parámetro de empate, las puntuaciones de otros campos coincidentes se añaden a la puntuación del campo de puntuación máxima:
(score of matching clause with the highest score) + ( (tie parameter) * (scores of any other matching clauses) )

El parámetro de empate configura cómo la puntuación final de la consulta está influenciada por las puntuaciones de los campos de puntuación más baja, que se comparan con el campo puntuación más alta.

El valor de empate se establece en 0.1 de forma predeterminada. Un valor de 0.0 hace que la consulta sea una consulta máxima de disyunción pura, donde solo la subconsulta de puntuación máxima contribuye a la puntuación final. Un valor de 1.0 hace que la consulta sea una consulta de suma de disyunción pura, donde la subconsulta con puntuación máxima es irrelevante y la puntuación final es la suma de las subpuntuaciones. Un valor bajo, por ejemplo, 0.1, es normalmente útil. Para obtener más información sobre cómo cambiar el valor del empate, consulte Adición de parámetros para consulta Solr nativos a expresiones de búsqueda.

Consulta de filtro

La consulta de filtro (fq) especifica una consulta que se puede utilizar para limitar los documentos que se pueden devolver, sin influir en la puntuación. Esto puede ser útil para acelerar las consultas complejas, puesto que las consultas que se han especificado con fq están en la memoria caché independientemente de la consulta principal.

Impulso de consulta

Los impulsos se pueden realizar tanto en tiempo de índice como en tiempo de consulta: Los impulsos de tiempo de índice se aplican cuando se añaden documentos y se aplican al documento entero o a campos específicos. Los impulsos de tiempo de consulta se aplican al crear una consulta de búsqueda y se aplican a campos específicos.

Los impulsos de consulta se aplican añadiendo el carácter de acento circunflejo ^ seguido de un número positivo en las cláusulas de consulta. Por ejemplo:

title:sail OR (title:sail AND title:boat)^2.0 OR title: "sail boat"^10 
Lucene permite impulsos negativos; sin embargo, Solr no. La única manera de realizar correctamente un impulso negativo es aplicando un impulso positivo a una consulta negativa. Por ejemplo:

(*:* -title:foo)^2.0

Donde todos los documentos que no contienen foo en el título se impulsan en 2.0.

Solr proporciona otro modo de impulsar los documentos utilizando consultas de función. FunctionQuery le permite utilizar el valor real de un campo y las funciones de esos campos en un grado de relevancia. Para obtener más información, consulte Solr Wiki: FunctionQuery.

Ejemplos

  • Puede cambiar la secuencia de resultados devueltos especificando una secuencia de ordenación diferente. Por ejemplo: sort=socre desc, price asc.
  • Puede añadir un parámetro de filtro (fl) a la consulta Solr. El parámetro fl restringe los campos a devolver con el conjunto de resultados. Por ejemplo: fl=id, title, text limita solo las búsquedas en los campos id, title y text.
  • Puede modificar la lista de campos que se incluyen en la sección <_config:result> del perfil de búsqueda dentro del archivo wc-search.xml.
    Por ejemplo, para el perfil de búsqueda de IBM_findProductsBySearchTerm:
    
    <_config:result>
            <_config:field name="catentry_id"/>
            <_config:field name="storeent_id"/>
            <_config:field name="buyable"/>
            <_config:field name="partNumber_ntk"/>
            <_config:field name="name"/>
            <_config:field name="shortDescription"/>
            <_config:field name="thumbnail"/>
            <_config:field name="keyword"/>
            <_config:field name="mfName_ntk"/>
            <_config:field name="catenttype_id_ntk_cs"/>
            <_config:field name="price_*"/>
            <_config:field name="listprice_*"/>
            <_config:field name="parentCatgroup_id_facet"/>
            <_config:field name="childCatentry_id"/>
            <_config:field name="mfPartNumber_ntk"/>  
            <_config:field name="ad_attribute"/>
            <_config:field name="isDKPreConfigured"/>
            <_config:field name="dkModelReference"/>  
            <_config:field name="dkURL"/>
            <_config:field name="dkDefaultConfiguration"/>
            <_config:field name="parentDKModelRef"/>
            <_config:field name="dkConfigurable"/>
            <_config:field name="parentDKConfigurable"/>
            <_config:field name="startdate"/>
    ;        <_config:field name="enddate"/>
    </_config:result>
    
    Puede cambiar los valores existentes de estos parámetros en el archivo wc-search.xml. Puede crear un preprocesador nuevo para añadir un componente que se utilizará en la consulta Solr final. Para obtener más información, consulte Crear un preprocesador de consulta personalizada.