2010-03-10 9 views
7

Tengo una instalación bastante simple de SOLR 1.4, aparte de algunas configuraciones pequeñas y cambios de esquema.Búsqueda de comodines y resaltado con Solr 1.4

<requestHandler name="standard" class="solr.SearchHandler" default="true"> 
    <!-- default values for query parameters --> 
    <lst name="defaults"> 
     <str name="defType">dismax</str> 
     <str name="echoParams">explicit</str> 
     <str name="qf"> 
      text 
     </str> 
     <str name="spellcheck.dictionary">default</str> 
     <str name="spellcheck.onlyMorePopular">false</str> 
     <str name="spellcheck.extendedResults">false</str> 
     <str name="spellcheck.count">1</str> 
    </lst> 
</requestHandler> 

El tipo de campo principal que estoy usando para la indización es la siguiente:

<fieldType name="textNoHTML" class="solr.TextField" positionIncrementGap="100"> 
     <analyzer type="index"> 
      <charFilter class="solr.HTMLStripCharFilterFactory" /> 
      <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
      <filter class="solr.StopFilterFactory" 
        ignoreCase="true" 
        words="stopwords.txt" 
        enablePositionIncrements="true" 
      /> 
      <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/> 
      <filter class="solr.LowerCaseFilterFactory"/> 
      <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/> 
     </analyzer> 
     <analyzer type="query"> 
      <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
      <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/> 
      <filter class="solr.StopFilterFactory" 
        ignoreCase="true" 
        words="stopwords.txt" 
        enablePositionIncrements="true" 
      /> 
      <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/> 
      <filter class="solr.LowerCaseFilterFactory"/> 
      <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/> 
     </analyzer> 
    </fieldType> 

ahora, cuando realizo una búsqueda utilizando

"q=search+term&hl=on" 

consigo poner de relieve, y las puntuaciones exactas agradables .

PERO, para comodín, asumo que necesita usar "q.alt"? ¿Es eso cierto? Si es así mi consulta es el siguiente:

"q.alt=search*&hl=on" 

Cuando uso la consulta anterior, el resaltado no funciona, y todos los resultados son "1.0".

¿Qué estoy haciendo mal? es lo que quiero posible sin pasar por alto algunas de las optimizaciones SOLR realmente geniales.

¡salud!

+1

Alguna información que encontré sobre esto: http://old.nabble.com/Wildcard-on-q.alt-with-Dismax-td17722791.html http://www.mail-archive.com/solr-user @ lucene.apache.org/msg21518.html sin embargo, parece que se arreglaron para 1.4. Seguiré buscando ... –

+0

genial, aclama Mauricio. He encontrado mucha información sobre este tema, pero las discusiones nunca abordan qué parámetros necesito usar, o si todavía puedo usar resaltado, puntuación, corrección ortográfica, etc., saludos, aunque – andy

Respuesta

8

Por lo que sé, no puede usar comodines con el controlador dismax, consulte http://wiki.apache.org/solr/DisMaxRequestHandler#q.

Para simular la búsqueda de comodines utilicé EdgeNGrams siguiendo algunas de las instrucciones aquí: http://www.lucidimagination.com/blog/2009/09/08/auto-suggest-from-popular-queries-using-edgengrams/. En realidad, realmente solo agregué el tipo de campo edgytext a schema.xml y cambié el tipo de campo del campo que quería buscar.

Espero que esto ayude!

+0

wow, vivas, finalmente !! – andy

+0

¡Me alegro de poder ayudar! Estaba bastante frustrado :) – jimmystormig

5

O puede obtener la última versión nocturna y usar edismax (ExtendedDismaxQParser).

Maneja comodines al final y al final.

+0

genial, gracias Jem, lo verificare. Por cierto, ¿estás en el foro de la lista de correo de Solr? Sería bueno si Solr pudiera hacer SO, son un lugar oficial de Q & A ... esas listas de correo son realmente poco intuitivas – andy

Cuestiones relacionadas