Solución:
Intente utilizar SynonymFilterFactory solo durante la indexación, no durante la consulta.
La documentación también sugiere esto: http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.SynonymFilterFactory
Para una mejor comprensión de la búsqueda de sinónimos, siga paso a paso el proceso de implementación a continuación (estoy usando versión solr 6.5. *):
Paso 1:
Descargue el archivo de texto country-sinónimos.txt y colóquelo en la siguiente ruta:
Sendero: solr-6.5.1 servidor solr yourCore conf
yourCore: El nombre del núcleo debe cambiarse en consecuencia
Paso 2:
Agregar tipo de campo 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 (esquema administrado).
<field name="Nationality" type="country" indexed="true" stored="true"/>
Paso 4:
Reinicie solr.
solr restart -p <your solr port>
Paso 5:
Ahora importe sus datos con el campo que contiene Nacionalidad. ***
Paso 6:
Ahora consulte con los casos siguientes y pruebe:
Consulta:
- Nacionalidad: EE. UU.
- Nacionalidad: EE. UU.
- Nacionalidad: Estados Unidos
- Nacionalidad: Estados Unidos de América
Todas las consultas anteriores le darán el mismo resultado.
Nota: *** Importe datos solo después de realizar los pasos anteriores, incluido el reinicio de solr. Es posible que no funcione con datos existentes (para obtener más detalles, consulte: AnalyzersTokenizersTokenFilters)