Pregunta

Estoy tratando de configurar algunos sinónimos básicos en Solr. En el que he estado trabajando es:

EE. UU., EE. UU., Estados Unidos

Tengo entendido que agregar eso al archivo de sinónimo permitirá a los usuarios buscarnos y recuperar documentos que contengan Estados Unidos o Estados Unidos. Lo mismo ocurre si un usuario se pone en Estados Unidos o Estados Unidos.

Desafortunadamente, con esto en su lugar, cuando hago una búsqueda, obtengo los resultados de los elementos que contienen las tres palabras: está haciendo un y de los sinónimos en lugar de un OR.

Si enciendo la depuración, esto es de hecho lo que veo (más algo de tallo):

(+DisjunctionMaxQuery(((westCite:us westCite:usa westCite:unit) | (text:us text:usa text:unit) | (docketNumber:us docketNumber:usa docketNumber:unit) | ((status:us status:usa status:unit)^1.25) | (court:us court:usa court:unit) | (lexisCite:us lexisCite:usa lexisCite:unit) | ((caseNumber:us caseNumber:usa caseNumber:unit)^1.25) | ((caseName:us caseName:usa caseName:unit)^1.5))))/no_coord

¿Estoy haciendo algo mal para causar esto? Mi Operator Default está configurado en y, pero esperaría que el filtro de sinónimo lo entienda.

¿Fue útil?

Solución

Intente usar el sinónimo deFilterFactory solo durante la indexación, no durante la consulta.

La documentación sugiere esto también:http://wiki.apache.org/solr/analyzerstokenizeStokenfilters#solr.synonymfilterFactory

Otros consejos

Para una mejor comprensión de la búsqueda del sinónimo, siga el proceso paso a paso de implementación a continuación (estoy usando Solr 6.5.* Versión):

Paso 1:

Descargar synonyms.txt Archivo de texto y colóquelo en la ruta a continuación:

Sendero: solr-6.5.1 server solr yourcore conf

tu cine: El nombre del núcleo debe cambiarse en consecuencia

Paso 2:

Agregar tipo de campo Tipo en esquema administrado Archivo en la misma ruta mencionada anteriormente:

<fieldType name="country" class="solr.TextField" positionIncrementGap="100" sortMissingLast="true">
<analyzer>
  <tokenizer class="solr.KeywordTokenizerFactory"/>
  <filter class="solr.TrimFilterFactory"/>
  <filter class="solr.SynonymFilterFactory" expand="false" ignoreCase="true" synonyms="country-synonyms.txt" tokenizerFactory="solr.KeywordTokenizerFactory"/>
  <filter class="solr.LowerCaseFilterFactory"/>
</analyzer></fieldType>

Paso 3:Agregue su campo (nacionalidad) con el tipo país en el mismo archivo (Schema administrado).

<field name="Nationality" type="country" indexed="true" stored="true"/>

Paso 4:Reiniciar solr.

solr restart -p <your solr port>

Paso 5:

Ahora importe sus datos con campo que contenga Nacionalidad.***

Paso 6:

Ahora consulte con los casos a continuación y prueba:

Consulta:

  1. Nacionalidad: EE. UU.
  2. Nacionalidad: Estados Unidos
  3. Nacionalidad: Estados Unidos
  4. Nacionalidad: Estados Unidos de América

Todas las consultas anteriores le darán el mismo resultado.

Nota: *** Importar datos solo después de realizar los pasos anteriores, incluido el reinicio SOLR. Es posible que no funcione en los datos existentes (para obtener más detalles, consulte: Analzerstokenizerstokenfilters)

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