django - template - is not a registered tag library. must be one of:
Apache solr busca parte de la palabra (5)
Si quieres encontrar todas las palabras que comienzan con chick, busca chick *.
Estoy usando el motor de búsqueda apache solr para indexar la base de datos de mi sitio web.
Estoy usando django + http://haystacksearch.org/
Entonces digamos que tengo un documento que tiene la palabra "Pollo"
Cuando busco "pollo" - solr puede encontrar este documento
Pero cuando busco "chica", no encuentra nada ...
¿Hay alguna manera de arreglar esto?
Un enfoque diferente, si tiene problemas con un pequeño conjunto de palabras, sería utilizar el sol. SynmofmFilterFactory
http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.SynonymFilterFactory
Solo debe mantener un archivo de texto simple que contenga sinónimos:
chick peep chicken
dawg hound dog
moggie puss kitten cat
Los plurales deben cuidarse a sí mismos con otros filtros.
Cuando he usado
<tokenizer class="solr.NGramTokenizerFactory" minGramSize="3" maxGramSize="15" />
para realizar búsquedas con comodines de la respuesta de Brian, el tiempo de indexación de Solr aumentó dramáticamente. ¡En más de 20 veces! La otra decisión del problema de búsqueda de comodines que encontré aquí:
http://www.lucidimagination.com/blog/2009/09/08/auto-suggest-from-popular-queries-using-edgengrams/
Solo necesitas agregar filtro
<filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="25" />
(tokenizer predeterminado - solr.WhitespaceTokenizerFactory en el bloque de índice de FieldType). Para mí, el resultado fue el mismo con menos costos del sistema.
No he cambiado ninguna configuración. Solo estoy usando star en el frente y en la parte posterior de mi searchString: * chicke * (sin espacios en blanco al final -> es debido a SO formateando la palabra como cursiva si usa * al principio y al final)
Nota: ¡La siguiente solución es Solr 1.4 (y superior) específica!
Para obtener más flexibilidad, recomendaría indexar sus datos con NGramTokenizerFactory para completar las búsquedas de comodines frontales y posteriores. Si solo desea buscar subcadenas al principio o al final de la cadena, considere usar EdgeNGramTokenizerFactory .
Aquí hay un reemplazo en el reemplazo del tipo de campo de texto que satisfaría su necesidad:
<fieldType name="text" class="solr.TextField" >
<analyzer type="index">
<tokenizer class="solr.NGramTokenizerFactory" minGramSize="3" maxGramSize="15" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>