You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by Navaa <na...@xtremumsolutions.com> on 2014/02/12 14:22:33 UTC

Searching phonetic by DoubleMetaphone soundex encoder

Hi,
I am using solr for searching phoneticly equivalent string
my schema contains...
<fieldType name="text_general_doubleMetaphone" class="solr.TextField"
positionIncrementGap="100">
		<analyzer type="index">
			<tokenizer class="solr.StandardTokenizerFactory" />
			<filter class="solr.PhoneticFilterFactory" encoder="DoubleMetaphone"
inject="true"/>
			<filter class="solr.LowerCaseFilterFactory"/> 
		</analyzer>
		<analyzer type="query">
			<tokenizer class="solr.StandardTokenizerFactory" />
			<filter class="solr.PhoneticFilterFactory" encoder="DoubleMetaphone"
inject="true"/>
			<filter class="solr.LowerCaseFilterFactory"/> 
		</analyzer>
     </fieldType>

and fields are

<field name="fname" type="text_general" indexed="true" stored="true"
required="false" />
<field name="fname_sound" type="text_general_doubleMetaphone" indexed="true"
stored="true" required="false" />
   <copyField source="fname" dest="fname_sound" />


it works when i search stfn===> stephen, stephn 

But I am expecting stephn=====> stephen like 
How I will get this result. m I doing something wrong

Thanks in advance



--
View this message in context: http://lucene.472066.n3.nabble.com/Searching-phonetic-by-DoubleMetaphone-soundex-encoder-tp4116885.html
Sent from the Solr - User mailing list archive at Nabble.com.

Re: Searching phonetic by DoubleMetaphone soundex encoder

Posted by Paul Libbrecht <pa...@hoplahup.net>.
Navaa,
You need the query to be sent to the two fields. In dismax, this is easy.
Paul

On 12 février 2014 14:22:33 HNEC, Navaa <na...@xtremumsolutions.com> wrote:
>Hi,
>I am using solr for searching phoneticly equivalent string
>my schema contains...
><fieldType name="text_general_doubleMetaphone" class="solr.TextField"
>positionIncrementGap="100">
>		<analyzer type="index">
>			<tokenizer class="solr.StandardTokenizerFactory" />
>			<filter class="solr.PhoneticFilterFactory" encoder="DoubleMetaphone"
>inject="true"/>
>			<filter class="solr.LowerCaseFilterFactory"/> 
>		</analyzer>
>		<analyzer type="query">
>			<tokenizer class="solr.StandardTokenizerFactory" />
>			<filter class="solr.PhoneticFilterFactory" encoder="DoubleMetaphone"
>inject="true"/>
>			<filter class="solr.LowerCaseFilterFactory"/> 
>		</analyzer>
>     </fieldType>
>
>and fields are
>
><field name="fname" type="text_general" indexed="true" stored="true"
>required="false" />
><field name="fname_sound" type="text_general_doubleMetaphone"
>indexed="true"
>stored="true" required="false" />
>   <copyField source="fname" dest="fname_sound" />
>
>
>it works when i search stfn===> stephen, stephn 
>
>But I am expecting stephn=====> stephen like 
>How I will get this result. m I doing something wrong
>
>Thanks in advance
>
>
>
>--
>View this message in context:
>http://lucene.472066.n3.nabble.com/Searching-phonetic-by-DoubleMetaphone-soundex-encoder-tp4116885.html
>Sent from the Solr - User mailing list archive at Nabble.com.

-- 
Envoyé de mon téléphone Android avec K-9 Mail. Excusez la brièveté.

Re: Searching phonetic by DoubleMetaphone soundex encoder

Posted by Paul Libbrecht <pa...@hoplahup.net>.
Navaa,

you need query expansion for that.
E.g. if your query goes through dismax, you need to add the two field names to the qf parameter.
The nice thing is that qf can be:
  text^3.0 test.stemmed^2 text.phonetic^1
And thus exact matches are preferred to stemmed or phonetic matches.

This is configured in solrconfig.xml.
It's quite common to create your own query component to do more than just dismax for this.

hope it helps.

paul


Le 12 févr. 2014 à 14:22, Navaa <na...@xtremumsolutions.com> a écrit :

> Hi,
> I am using solr for searching phoneticly equivalent string
> my schema contains...
> <fieldType name="text_general_doubleMetaphone" class="solr.TextField"
> positionIncrementGap="100">
> 		<analyzer type="index">
> 			<tokenizer class="solr.StandardTokenizerFactory" />
> 			<filter class="solr.PhoneticFilterFactory" encoder="DoubleMetaphone"
> inject="true"/>
> 			<filter class="solr.LowerCaseFilterFactory"/> 
> 		</analyzer>
> 		<analyzer type="query">
> 			<tokenizer class="solr.StandardTokenizerFactory" />
> 			<filter class="solr.PhoneticFilterFactory" encoder="DoubleMetaphone"
> inject="true"/>
> 			<filter class="solr.LowerCaseFilterFactory"/> 
> 		</analyzer>
>     </fieldType>
> 
> and fields are
> 
> <field name="fname" type="text_general" indexed="true" stored="true"
> required="false" />
> <field name="fname_sound" type="text_general_doubleMetaphone" indexed="true"
> stored="true" required="false" />
>   <copyField source="fname" dest="fname_sound" />
> 
> 
> it works when i search stfn===> stephen, stephn 
> 
> But I am expecting stephn=====> stephen like 
> How I will get this result. m I doing something wrong
> 
> Thanks in advance
> 
> 
> 
> --
> View this message in context: http://lucene.472066.n3.nabble.com/Searching-phonetic-by-DoubleMetaphone-soundex-encoder-tp4116885.html
> Sent from the Solr - User mailing list archive at Nabble.com.


Re: Searching phonetic by DoubleMetaphone soundex encoder

Posted by Navaa <na...@xtremumsolutions.com>.
hi,
Thanks for your reply..

I m beginner of solr kindly elaborate it mor details because in my
solrconfig.xml

<requestHandler name="/select" class="solr.SearchHandler">
     <lst name="defaults">
       <str name="echoParams">explicit</str>
       <int name="rows">50000</int>
       <str name="df">name</str>
      
     </lst>
  </requestHandler>
  
  <requestHandler name="standard" class="solr.StandardRequestHandler"
default="true" />
  <requestHandler name="/update" class="solr.XmlUpdateRequestHandler" />
  <requestHandler name="/admin/"
class="org.apache.solr.handler.admin.AdminHandlers" />
  
  <requestHandler name="/analysis/field"
class="solr.FieldAnalysisRequestHandler"/>
  
  <requestHandler name="/get" class="solr.RealTimeGetHandler">
    <lst name="defaults">
        <str name="omitHeader">true</str>
        <str name="wt">json</str>
        <str name="indent">true</str>
    </lst>
  </requestHandler>

where I can add this qf parameter for those two fields...
hope you will understand the scenario..
Thanks in advance 



--
View this message in context: http://lucene.472066.n3.nabble.com/Searching-phonetic-by-DoubleMetaphone-soundex-encoder-tp4116885p4117073.html
Sent from the Solr - User mailing list archive at Nabble.com.