tipos parametros los internet google exactas criterios comodines comandos caracteres busquedas busqueda atajos search solr

search - parametros - Solr búsqueda exacta de palabras



parametros de busqueda de google (5)

Quiero configurar mi motor de búsqueda Solr para obtener una coincidencia exacta para el término de búsqueda que ingresé.

p.ej. ''impuestos'' debe devolver documentos con ''impuestos'' y no ''impuestos'', ''impuestos'', etc.

Cualquier ayuda o consejo sería apreciado.



Supongo que su campo es un campo de texto, por defecto solr realiza una búsqueda difusa en este campo. Lo que quiere es configurar su campo como un campo de cadena y no agregar tokenizer, entonces obtendrá una coincidencia exacta.

Incluso puede combinar la búsqueda exacta con una búsqueda difusa y usar DisMax para aumentar los pesos relativos.

Ejemplo (schema.xml):

<field name="name" type="string" indexed="true" stored="false" required="true" /> <field name="nameString" type="string" indexed="true" stored="false" required="true" /> <copyField source="name" dest="nameString"/>

Ejemplo (solrconfig.xml):

<requestHandler name="accounts" class="solr.SearchHandler"> <lst name="defaults"> <str name="defType">dismax</str> <str name="qf"> nameString^10.0 name^5.0 description^1.0 </str> <str name="tie">0.1</str> </lst> </requestHandler>


Para desactivar la derivación en su schema.xml, puede definir un campo de texto como este:

<types> <!-- other fields definition --> <fieldType name="text_no_stem" class="solr.TextField" omitNorms="false"> <analyzer> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.StandardFilterFactory"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> </fieldType> <!-- other fields definition --> </types> <fields> <!-- other fields definition --> <dynamicField name="*_nostem" type="text_no_stem" indexed="true" stored="true"/> <!-- other fields definition --> </fields>

Estoy usando manchas solares para integrar Solr con Ruby on Rails. Con esto en schema.xml, defino mi bloque de búsqueda de esta manera:

searchable do text(:wants, as: :wants_nostem) end


Utilice el campo de cadena de solr que hará una búsqueda de valor exacto, por ejemplo

<fieldType class="solr.StrField" name="string" omitNorms="true" sortMissingLast="true" />