ruby on rails - Matching substrings in fulltext search not working -
in rails application, i'm using solr search. substring matching working fine on local server matching full words on deployment server.
searchable block
searchable text :firstname, :lastname, :login, :mail boolean :member integer :status end
schema.xml is.
<fieldtype name="text" class="solr.textfield" omitnorms="false"> <analyzer> <tokenizer class="solr.standardtokenizerfactory"/> <filter class="solr.standardfilterfactory"/> <filter class="solr.lowercasefilterfactory"/> <filter class="solr.porterstemfilterfactory"/> <filter class="solr.edgengramfilterfactory" mingramsize="2" maxgramsize="10" side="front" /> </analyzer> </fieldtype>
what doing wrong?
(adding answer here inform of possible undesired behavior)
fyi, when make changes "text" fieldtype
in schema.xml
changing configuration every indexed text field in application. not desired fields need custom configuration.
for example, let's (for whatever reason) wanted treat first names differently other text fields. let's wanted add synonyms of first names. first create new fieldtype
in schema.xml
called first_name
<fieldtype name="first_name" class="solr.textfield" positionincrementgap="100"> <analyzer> <tokenizer class="solr.standardtokenizerfactory"/> <filter class="solr.lowercasefilterfactory"/> <filter class="solr.synonymfilterfactory" synonyms="synonyms.txt" ignorecase="true" expand="true"/> </analyzer> </fieldtype>
then in fields
section of schema.xml
file, add 2 new dynamic fields
<dynamicfield name="*_first_name" stored="false" type="first_name" multivalued="false" indexed="true"/> <dynamicfield name="*_first_names" stored="true" type="first_name" multivalued="false" indexed="true"/>
note: 's' on dynamicfield
name denote it's stored type, providing * dynamic field helps sunspot configuration
so in searchable
block, can do:
searchable text :firstname, :as => :user_first_name text :lastname, :login, :mail boolean :member integer :status end
this use custom-configured "first_name"
field.
if wanted first_name stored value (and still wanted use custom configuration) implement searchable block like:
searchable text :firstname, :stored => true, :as => :user_first_names text :lastname, :login, :mail boolean :member integer :status end
Comments
Post a Comment