Wildcard search in Solr

Imran Khan picture Imran Khan · Jul 12, 2010 · Viewed 8.9k times · Source

I am having a problem doing wildcard searches in lucene syntax using the edismax handler. I have Solr 4.0 nightly build from the trunk.

A general search like 'computer' returns results but 'comer' doesn't return any results. Similary, a search like 'co?mput?r' returns no results. The only type of wildcard searches working currrently is ones with trailing wildcards(like compute? or comput).

I want to be able to do searches with wildcards at the beginning (puter) and in between (comer). Could someone please tell me what I am doing wrong and how to fix it.

Thanks.

Regards,
Imran.

Answer

Pascal Dimassimo picture Pascal Dimassimo · Jul 12, 2010

Leading wildcard won't work unless you activate the reverse string filter. To use it in Solr, add a ReversedWildcardFilterFactory to the analyzer of the field that you want to search with a leading wildcard.

As for your other queries that return 0 result, try using luke to see how your terms are being analyzed (stored in the index). Don't forget to take into account the effect of stemming, if you are using it.