El idioma holandés y alemán sí tiene palabras que se pueden combinar con palabras nuevas; palabras compuestas.Soltero tokenizador de palabras compuestas - resultados tratados como instrucción OR
Por ejemplo, "accountmanager" se considera una palabra, compuesta por las palabras "account" y "manager". Nuestros usuarios utilizarán "accountmanager" y "account manager" en documentos y consultas, y esperan los mismos resultados para ambas consultas.
Para poder decompound palabras (split), Solr tiene un filtro de diccionario que he configurado en el esquema:
<filter class="solr.DictionaryCompoundWordTokenFilterFactory" dictionary="../../compound-word-dictionary.txt" minWordSize="8" minSubwordSize="4" maxSubwordSize="15" onlyLongestMatch="true"/>
El archivo compuesto-palabra-dictionary.txt mantiene una lista de palabras que se usan para descomponer palabras compuestas. En esta lista, encontrará, por ejemplo, las palabras "cuenta" y "gerente".
El resultado decompound está bien, cuando se analizaron en el depurador Solr cuando se busca con la consulta "AccountManager": (término texto):
- AccountManager
- cuenta de administrador
Sin embargo, este resultado se trata como una instrucción OR y encuentra todos los documentos que tienen al menos uno de los términos. Quiero que se comporte como una declaración AND (así que solo quiero los resultados que tienen los términos "cuenta" y "gerente" en el documento).
He intentado establecer el operador predeterminado en el esquema en "Y", pero esto se ignora al usar edismax. Por lo tanto, he establecido Mín-to-Match propuesto al 100% (mm = 100%), nuevamente sin ningún resultado deseado. Ajustar los atributos del filtro de diccionario en el esquema no cambia el comportamiento a "Y".
¿Alguien se encontró con este comportamiento al usar la fábrica de tokens de palabras compuestas de diccionario y conoce una solución para que se comporte como una instrucción AND?
Gracias por la explicación. Respuesta clara del comportamiento del DictionaryCompoundWordTokenFilterFactory. He malinterpretado su uso y veo ahora que no servirá a mis necesidades en este caso. La sugerencia que sugirió es en realidad mi próximo paso (utilizando solr.SynonymFilterFactory). Esperaba simplificar el filtro de sinónimos en combinación con la fábrica de filtros de palabras compuestas. –