search - sinonimos - sinonimo de renovar
¿Hay alguna forma de actualizar dinámicamente un archivo de sinónimos sin reiniciar el servidor Solr? (2)
Creo que puede construir su propia SynonymFilterFactory que amplíe el original y use un FSTSynonymFilterFactory personalizado como delegador. su SynonymFilterFactory debe extender el SlowSynonymFilterFactory original y llamar:
map = loadSolrSynonyms(loader, true, analyzer);
cada vez que quiera volver a cargar el archivo de sinónimos.
Para volver a cargar el archivo cuando cambia, puede utilizar un hilo de vigilancia que se despierta cada X veces y comprobar si el archivo sysnonim se modificó o puede usar algún vigilante de archivos para recibir una notificación cuando se cambie el archivo.
Como sabemos, hay un archivo sinónimo.txt en el directorio conf, que quería actualizar cada vez que encontraba algunas palabras de sinónimos nuevas ...
Entonces, ¿hay alguna manera de actualizar ese archivo dinámicamente sin reiniciar el servidor Solr y mi resultado de búsqueda considerará las nuevas palabras de sinónimos?
por favor, ayúdenme si alguien tiene alguna idea ... gracias de antemano ...
Solr proporciona Managed Synonym Graph Filter para administrar sinónimos utilizando una API REST (en este ejemplo via /solr/collection_name/schema/analysis/synonyms/english
endpoint):
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.ManagedSynonymGraphFilterFactory" managed="english"/>
<filter class="solr.FlattenGraphFilterFactory"/> <!-- required on index analyzers after graph filters -->
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.ManagedSynonymGraphFilterFactory" managed="english"/>
</analyzer>
Se necesita una recarga central para aplicar cambios de sinónimos. Solr proporciona una API REST para esto también CoreAdmin API Recarga admin/cores?action=RELOAD&core=core-name
La acción RELOAD carga un nuevo núcleo de la configuración de un núcleo Solr registrado existente. Mientras el nuevo núcleo se está inicializando, el existente continuará manejando las solicitudes. Cuando el nuevo núcleo Solr está listo, toma el control y el viejo núcleo se descarga.