2010-10-19 21 views
6

Estoy intentando configurar el corrector ortográfico, según solr documentation. Pero cuando estoy probando, no tengo ninguna sugerencia. Mi pieza de código siguiente:Solicitud de dirección solrconfig.xml Corrector ortográfico

<searchComponent name="spellcheck" class="solr.SpellCheckComponent"> 

    <str name="queryAnalyzerFieldType">textSpell</str> 

    <lst name="spellchecker"> 
     <str name="classname">solr.IndexBasedSpellChecker</str> 
     <str name="name">default</str> 
     <str name="field">name</str> 
     <str name="spellcheckIndexDir">./spellchecker</str> 
    </lst> 
    <str name="queryAnalyzerFieldType">textSpell</str> 

    </searchComponent> 


<requestHandler name="/spellcheck" class="solr.SearchHandler"> 
    <lst name="defaults"> 
     <str name="echoParams">explicit</str> 
     <!-- Optional, must match spell checker's name as defined above, defaults to "default" --> 
     <str name="spellcheck.dictionary">default</str> 
     <!-- omp = Only More Popular --> 
     <str name="spellcheck.onlyMorePopular">false</str> 
     <!-- exr = Extended Results --> 
     <str name="spellcheck.extendedResults">false</str> 
     <!-- The number of suggestions to return --> 
     <str name="spellcheck.count">1</str> 
    </lst> 
    <arr name="last-components"> 
     <str>spellcheck</str> 
    </arr> 
    </requestHandler> 

La consulta que envío a Solr:
q =% 2B% 28text% 3A% 28gasal% 29% 29 & suggestField = contentOriginal & ontologySeed = Gasal & spellcheck.build = true & spellcheck.q = Gasal & corrección ortográfica = true & spellcheck.collate = true & hl = true & hl.snippets = 5 & hl.fl = texto & hl.fl = texto & filas = 12 & start = 0 & qt =% 2Fsuggestprobabili stic

¿Alguien sabe por qué? Gracias de antemano

+0

Su configuración se ve correcta. ¿Puede publicar la consulta que está enviando y los resultados esperados (es decir, qué hay en su diccionario)? –

+0

Ingresé bsketball y quiero obtener baloncesto, por ejemplo –

+0

Por favor, publique la consulta completa y todos los parámetros que está publicando en Solr. ¿Tiene un documento en su índice que tenga el token 'basketball' en el campo textSpell? –

Respuesta

17

Primero, no repita queryAnalyzerFieldType dos veces en la configuración del componente.

Se recomienda no utilizar un manejador de /spellcheck pero en lugar de enlazar el componente de corrección ortográfica al controlador de consulta estándar (o dismax si es lo que usa) de esta manera:

<requestHandler name="standard" class="solr.SearchHandler" default="true"> 
<lst name="defaults"> 
    ... 
</lst> 
<arr name="last-components"> 
    <str>spellcheck</str> 
    ...   
</arr> 
</requestHandler> 

entonces le puede llamar de esta manera:
http://localhost:8983/solr/select?q=komputer&spellcheck=true

Tampoco se olvide de to build the spellcheck dictionary antes de usarla:
http://localhost:8983/solr/select/?q=*:*&spellcheck=true&spellcheck.build=true

Puede forzar el diccionario de construir en cada confirmación configurándolo en el componente:

<searchComponent name="spellcheck" class="solr.SpellCheckComponent"> 
<str name="queryAnalyzerFieldType">textSpell</str> 
<lst name="spellchecker"> 
    <str name="classname">solr.IndexBasedSpellChecker</str> 
    <str name="name">default</str> 
    <str name="field">name</str> 
    <str name="spellcheckIndexDir">./spellchecker1</str> 
    <str name="buildOnCommit">true</str> 
</lst> 
</searchComponent> 

Por último, asegúrese de que su campo name es realmente un campo indexado de tipo textSpell y que contiene suficiente contenido para construir un buen diccionario. En mi caso, tengo un campo llamado spellchecker que se rellena desde un par de campos de mi índice (usando las instrucciones copyField en el esquema).

+0

De acuerdo con el diccionario, ¿es esto enaugh? subject o debo hacer simething else? –

+0

spellcheck.dictionary no es una opción no config, sino un parámetro de solicitud para indicar qué diccionario usar en tiempo de ejecución. Es útil si ha definido más de un diccionario. –

+0

He editado exitosamente el diccionario, pero cuando ejecuto la url: http: // localhost: 8983/solr/select? Q = komputer & spellcheck = true, no recibo ninguna sugerencia :( – Romi

Cuestiones relacionadas