Wildcard search in Solr

2019-04-28 14:43发布

问题:

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.

回答1:

With edismax, leading wildcards are no problem. I just retested it.

Wildcards in middle of term are no problem either.

Looks like there is something else wrong. Are you sure you are using edismax?



回答2:

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.