Solr Indexing & Searching -


could suggest me best way of using solr regular search products , should support synonyms & fuzzy search ?

suppose if search word cro, need products starting cro, cro occurrences anywhere in field, synonyms & fuzzy on in respective boosting

i have scenario project.

i using fuzzylookupfactory(with multiple suggester) , analyzinginfixlookupfactory. using solrj (java api) request query.

first search word analyzinginfixlookupfactory find word anywhere in field have input correctly. example product name "toshiba" if search "tosh" find "toshiba" correctly if search "toshba" not find product.

this time using fuzzylookupfactory suggester split words(for example have "toshiba laptop" word1=toshiba word2 = laptop etc.) , search 1 one , fuzzy find toshba -> toshiba , after find toshiba again use analyzinginfixlookupfactory find complete product field.

for example want find "toshiba laptop" , searched "toshba laptp". first try "analyzinginfixlookupfactory" , response null.after response null search fuzzy each word , add find toshba -> toshiba + laptp-> laptop toshiba laptop , can search again analyzinginfixlookupfactory complete field.

my analyzing suggester in (solrconfig.xml)

<searchcomponent name="suggestanalyzing" class="solr.suggestcomponent"> <lst name="suggester"> <str name="name">suggestanalyzing</str> <str name="lookupimpl">analyzinginfixlookupfactory</str> <str name="classname">org.apache.solr.spelling.suggest.suggester</str> <str name="storedir">suggester_fuzzy_dir</str> <str name="indexpath">suggester_infix_dir</str> <str name="dictionaryimpl">documentdictionaryfactory</str>   <str name="field">complete_field</str> <str name="suggestanalyzerfieldtype">textgen</str>   <float name="threshold">0.005</float>  <str name="buildonstartup">false</str>  <str name="buildoncommit">false</str>  </lst>    </searchcomponent>   <requesthandler name="/suggestanalyzing" class="solr.searchhandler">  <lst name="defaults">  <str name="suggest.dictionary">suggestanalyzing</str>  <str name="suggest">true</str>  <str name="suggest.count">10</str>   </lst>  <arr name="components">  <str>suggestanalyzing</str>  </arr>  </requesthandler> 

my fuzzy suggester in (solrconfig.xml)

<searchcomponent class="solr.suggestcomponent" name="suggest">  <lst name="suggester"> <str name="name">word1suggester</str> <str name="lookupimpl">fuzzylookupfactory</str> <str name="dictionaryimpl">documentdictionaryfactory</str> <str name="field">word1</str>  <!-- indexed field derive suggestions -->    <str name="suggestanalyzerfieldtype">textgen</str> <str name="storedir">suggest_fuzzy_doc_expr_dict</str> <str name="buildonstartup">false</str> <str name="buildoncommit">false</str> </lst>  <lst name="suggester"> <str name="name">word2suggester</str> <str name="lookupimpl">fuzzylookupfactory</str> <str name="dictionaryimpl">documentdictionaryfactory</str> <str name="field">word2</str>  <!-- indexed field derive suggestions --> <str name="suggestanalyzerfieldtype">textgen</str> <str name="indexpath">suggestions/word2suggester</str> <str name="storedir">suggest_fuzzy_doc_expr_dict</str> <str name="buildonstartup">false</str> <str name="buildoncommit">false</str> </lst>  <lst name="suggester"> <str name="name">word3suggester</str> <str name="lookupimpl">fuzzylookupfactory</str> <str name="dictionaryimpl">documentdictionaryfactory</str> <str name="field">word3</str>  <!-- indexed field derive suggestions --> <str name="suggestanalyzerfieldtype">textgen</str> <str name="indexpath">suggestions/word3suggester</str> <str name="storedir">suggest_fuzzy_doc_expr_dict</str> <str name="preservesep">true</str> <str name="preservepositionincrements">true</str> <str name="exactmatchfirst">true</str>  <float name="threshold">0.005</float>  <str name="buildonstartup">false</str> <str name="buildoncommit">false</str>  </lst>  <lst name="suggester"> <str name="name">word4suggester</str> <str name="lookupimpl">fuzzylookupfactory</str> <str name="dictionaryimpl">documentdictionaryfactory</str> <str name="field">word4</str>  <!-- indexed field derive suggestions --> <str name="suggestanalyzerfieldtype">textgen</str> <str name="indexpath">suggestions/word4suggester</str> <str name="storedir">suggest_fuzzy_doc_expr_dict</str> <str name="preservesep">true</str> <str name="preservepositionincrements">true</str> <str name="buildonstartup">false</str> <str name="buildoncommit">false</str> </lst>  <lst name="suggester"> <str name="name">word5suggester</str> <str name="lookupimpl">fuzzylookupfactory</str> <str name="dictionaryimpl">documentdictionaryfactory</str> <str name="field">word5</str>  <!-- indexed field derive suggestions --> <str name="suggestanalyzerfieldtype">textgen</str> <str name="indexpath">suggestions/word5suggester</str> <str name="storedir">suggest_fuzzy_doc_expr_dict</str> <str name="preservesep">true</str> <str name="preservepositionincrements">true</str> <str name="buildonstartup">false</str> <str name="buildoncommit">false</str> </lst>  <lst name="suggester"> <str name="name">word6suggester</str> <str name="lookupimpl">fuzzylookupfactory</str> <str name="dictionaryimpl">documentdictionaryfactory</str> <str name="field">word6</str>  <!-- indexed field derive suggestions --> <str name="suggestanalyzerfieldtype">textgen</str> <str name="indexpath">suggestions/word6suggester</str> <str name="storedir">suggest_fuzzy_doc_expr_dict</str> <str name="preservesep">true</str> <str name="preservepositionincrements">true</str> <str name="exactmatchfirst">true</str>  <float name="threshold">0.005</float>  <str name="buildonstartup">false</str> <str name="buildoncommit">false</str> </lst>   <lst name="suggester"> <str name="name">word7suggester</str> <str name="lookupimpl">fuzzylookupfactory</str> <str name="dictionaryimpl">documentdictionaryfactory</str> <str name="field">word7</str>  <!-- indexed field derive suggestions --> <str name="suggestanalyzerfieldtype">textgen</str> <str name="indexpath">suggestions/word7suggester</str> <str name="storedir">suggest_fuzzy_doc_expr_dict</str> <str name="preservesep">true</str> <str name="preservepositionincrements">true</str> <str name="exactmatchfirst">true</str>  <float name="threshold">0.005</float>  <str name="buildonstartup">false</str> <str name="buildoncommit">false</str> </lst>  <lst name="suggester"> <str name="name">word8suggester</str> <str name="lookupimpl">fuzzylookupfactory</str> <str name="dictionaryimpl">documentdictionaryfactory</str> <str name="field">word8</str>  <!-- indexed field derive  suggestions --> <str name="suggestanalyzerfieldtype">textgen</str> <str name="indexpath">suggestions/word8suggester</str> <str name="storedir">suggest_fuzzy_doc_expr_dict</str> <str name="preservesep">true</str> <str name="preservepositionincrements">true</str> <str name="exactmatchfirst">true</str>  <float name="threshold">0.005</float>  <str name="buildonstartup">false</str> <str name="buildoncommit">false</str> </lst>   </searchcomponent>  <requesthandler class="solr.searchhandler" name="/suggest"> <lst name="defaults"> <str name="spellcheck">true</str> <str name="suggest">true</str> <str name="suggest.dictionary">word1suggester</str> <str name="suggest.dictionary">word2suggester</str> <str name="suggest.dictionary">word3suggester</str> <str name="suggest.dictionary">word4suggester</str> <str name="suggest.dictionary">word5suggester</str> <str name="suggest.dictionary">word6suggester</str> <str name="suggest.dictionary">word7suggester</str> <str name="suggest.dictionary">word8suggester</str>  <str name="spellcheck.count">10</str>  </lst> <arr name="components"> <str>suggest</str> </arr> </requesthandler>  

my managed-schema fields

<fieldtype name="textgen" class="solr.textfield" positionincrementgap="100"> <analyzer type="index"> <tokenizer class="solr.whitespacetokenizerfactory"/> <filter class="solr.worddelimiterfilterfactory" generatewordparts="1" generatenumberparts="1" catenatewords="1" catenatenumbers="1" catenateall="0" splitoncasechange="0"/> <filter class="solr.lowercasefilterfactory"/> </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"          /> <filter class="solr.worddelimiterfilterfactory" generatewordparts="1" generatenumberparts="1" catenatewords="0" catenatenumbers="0" catenateall="0" splitoncasechange="0"/> <filter class="solr.lowercasefilterfactory"/> </analyzer> </fieldtype>  <field name="word1" type="textgen" omitnorms="true" omittermfreqandpositions="true" multivalued="true" indexed="true" stored="true"/>  <field name="complete_field" type="textgen" multivalued="true" indexed="true" stored="true"/>  <field name="word2" type="text_general" omitnorms="true" omittermfreqandpositions="true" multivalued="true" indexed="true" stored="true"/>  <field name="word3" type="text_general" omitnorms="true" omittermfreqandpositions="true" multivalued="true" indexed="true" stored="true"/>  <field name="word4" type="textgen" omitnorms="true" omittermfreqandpositions="true" multivalued="true" indexed="true" stored="true"/>  <field name="word5" type="textgen" omitnorms="true" omittermfreqandpositions="true" multivalued="true" indexed="true" stored="true"/>  <field name="word6" type="textgen" omitnorms="true" omittermfreqandpositions="true" multivalued="true" indexed="true" stored="true"/>  <field name="word7" type="textgen" omitnorms="true" omittermfreqandpositions="true" multivalued="true" indexed="true" stored="true"/> <field name="word8" type="textgen" omitnorms="true" omittermfreqandpositions="true" multivalued="true" indexed="true" stored="true"/> 

Comments

Popular posts from this blog

php - How to add and update images or image url in Volusion using Volusion API -

javascript - jQuery UI Splitter/Resizable for unlimited amount of columns -

javascript - IE9 error '$'is not defined -