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.
Desactivar la derivación .
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" />
Use las comillas para obtener el resultado exacto del partido:
Ejemplo:
núcleo Nombre: clave core1: namestring
http: // localhost: 8983 / solr / core1 / select? q = namestring : "impuestos" & wt = json & indent = true