2012-07-08 26 views
10

Estoy intentando configurar Solr 3.6.0 con Django-haystack Beta 2.0.0.Solr no puede encontrar el recurso stopwords_en.txt

Después de ejecutar ./manage.py build_solr_schema y mover schema.xml al directorio conf, al visitar http://localhost:8983/solr/admin, recibo un error exactamente igual al producido en this thread.

org.apache.solr.common.SolrException: No cores were created, please check the logs for errors

java.lang.RuntimeException: Can't find resource 'stopwords_en.txt' in classpath or 'solr/./conf/', cwd=/home/randall/startupsearch_live/apache-solr-3.6.0/example

En la parte inferior de la rosca, un usuario menciona que schema.xml debe ser editado para que coincida con el stopwords_en.txt/ejemplo/Solr/conf /, lo que hice tanto a través de un enlace simbólico como editando todas las instancias de stopwords.txt a /solr/conf/stopwords_en.txt en el archivo schema.xml generado. Sin embargo, persiste el mismo error, dando una salida ligeramente diferente:

java.lang.RuntimeException: Can't find resource '/solr/conf/stopwords_en.txt' in classpath or 'solr/./conf/', cwd=/home/randall/startupsearch_live/apache-solr-3.6.0/example

Qué archivo debo modificar para solucionar este problema?

Respuesta

7

No se puede encontrar el archivo stopwords_en.txt en el classpath. Debe agregar el archivo stopwords_en.txt en el directorio solr/conf/. Puede encontrar más información acerca de las palabras vacías here.

+1

trabajando para mí ...! + 1 – mcacorner

2

Tienes que poner stopwords_en.txt en la ruta. Cree un nombre de archivo stopwords_en.txt y péguelo al lado de schema.xml. Espero que sepa qué filtro de palabras prohibidas se usa .....

6

Una mejor manera es encontrar todas las apariciones de stopwords_en.txt en schema.xml y reemplazarlos con lang/stopwords_en.txt

1

para combinar todos tres de las respuestas anteriores, se necesita el stopwords_en.txt, ya que comienza la prueba de texto en el idioma Inglés

de http://wiki.apache.org/solr/LanguageAnalysis#Stopwords

Las palabras prohibidas afectan a Solr de tres maneras: relevancia, rendimiento y utilización de recursos .

Desde una perspectiva de relevancia, estos términos de extremadamente alta frecuencia tienden a salirse del algoritmo de puntuación, y usted no obtendrá muy buenos resultados si los deja. Al mismo tiempo, si los elimina, puede devolver malos resultados cuando la palabra de bloqueo es realmente importante.

Desde el punto de vista del rendimiento, si mantiene las palabras vacías, algunas consultas (especialmente las consultas de frase) pueden ser muy lentas.

Desde la perspectiva de la utilización de los recursos, si mantiene las palabras vacías, el índice es mucho más grande que si los elimina.

Una compensación que puede realizar si tiene espacio en disco: Puede usar CommonGramsFilter/CommonGramsQueryFilter en lugar de StopFilter.Este resuelve los problemas de relevancia y rendimiento, a expensas de incluso más utilización de recursos, ya que formará bigramas de palabras vacías en sus palabras adyacentes.

Lo que hay que hacer es copiar la versión original que se encuentra en la carpeta/conf/lang del directorio de Solr en apenas el directorio/conf

cp PATH/TO/solr/conf/lang/stopwords_en.txt PATH/TO/solr/conf 
1

En Solr 5 Tengo el mismo error. Utilicé el shell cli de Solr zookeeper para cargar mi configuración. Copié el contenido de una configuración de solr existente del servidor/solr/configsets/basic_configs, pero de alguna manera me perdí el directorio lang.

El directorio conf/lang contiene stopwords_en.txt.

0

Tuve el mismo problema y resulta que cuando se creó mi archivo stopwords_en.txt accidentalmente creé el archivo stopwords_en.txt.txt. Recrearlo como el archivo .txt correcto resolvió el problema

Cuestiones relacionadas