0

This problem is like this:Solr wildcard query with whitespace I have a wildcard query that looks something like:

q=location:los a*

I'd like it to match "los angeles" and "los altos". A query like:

q=location:los\ a*

Works fine, but if I have a synonym logic:(synonym.txt)

los,las

And use "los l*" to match "las lu".Seems not work.How can I do this?

The fileType and file config:

<fieldType name="ngram" class="solr.TextField" positionIncrementGap="100"> <analyzer type="index"> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.WordDelimiterFilterFactory" stemEnglishPossessive="0" generateWordParts="0" generateNumberParts="0" catenateWords="1" catenateNumbers="0" catenateAll="0" splitOnNumerics="0" preserveOriginal="1"/> <filter class="solr.ASCIIFoldingFilterFactory"/> <filter class="solr.SynonymFilterFactory" synonyms="synonym.txt" ignoreCase="true" expand="true"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="25"/> </analyzer> <analyzer type="query"> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.WordDelimiterFilterFactory" stemEnglishPossessive="0" generateWordParts="0" generateNumberParts="0" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnNumerics="0" preserveOriginal="1"/> <filter class="solr.ASCIIFoldingFilterFactory"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> </fieldType>

<field name="location" type="ngram" indexed="true" stored="false"/>

Community
  • 1
  • 1
Chao Jiang
  • 483
  • 3
  • 13

2 Answers2

0

You used solr.SynonymFilterFactory for indexing not for query analyzer so

when you search for "los l*" it looks for terms starting with los not "las". use analyzer for query

Add this line to your query analyzer

<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>  

Hope this works

Vinod
  • 1,965
  • 1
  • 9
  • 18
0

Seems like this is a version problem. I use Solr 4.0 in my project, but when I upgrade the Solr version to 5.4.1, the synonym logic works fine.

I haven't change the query analyzer. It's for special requirement.

Chao Jiang
  • 483
  • 3
  • 13