I have been using solr for a while but started running across situations
where synonyms are required.
the example I have is group of city names that look like "Fort Saint John"
(a city), in a text field. Users may want to search for "Ft St John" or
"Fort St John" or "Ft Saint John" however
My attempted solution was to create a type that uses SynonymFilterFactory
and a text file of city based synonyms like this:
saint,st,ste
fort,ft
this doesnt work however and I am not sure I understand why.
any help appreciated. thx
p.s. I am using Solr 4.6.1 and here is the field type definition from the
solrconfig.xml:
<fieldtype name="geo_search_area_text" class="solr.TextField"
positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.PatternTokenizerFactory" pattern="[\^\-,|]"
group="-1" />
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.PatternReplaceFilterFactory" pattern="[^\w\s]"
replacement=" " replace="all" />
<filter class="solr.PatternReplaceFilterFactory" pattern="[\s]{2,}"
replacement=" " replace="all" />
<filter class="solr.TrimFilterFactory"/>
<filter class="solr.SynonymFilterFactory"
synonyms="city_index_synonyms.txt" ignoreCase="true" expand="true" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.PatternTokenizerFactory" pattern="[\^\-,|]"
group="-1" />
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.PatternReplaceFilterFactory" pattern="[^\w\s]"
replacement=" " replace="all" />
<filter class="solr.PatternReplaceFilterFactory" pattern="[\s]{2,}"
replacement=" " replace="all" />
<filter class="solr.TrimFilterFactory"/>
</analyzer>
</fieldtype>
--
View this message in context:
http://lucene.472066.n3.nabble.com/how-do-I-get-search-for-fort-st-john-to-match-ft-saint-john-tp4127231.html
Sent from the Solr - User mailing list archive at Nabble.com.