[hibernate-dev] HSEARCH - Different analyzers for Indexing and Querying

Emmanuel Bernard emmanuel at hibernate.org
Thu Aug 22 12:10:25 EDT 2013


On Thu 2013-08-22 13:40, Guillaume Smet wrote:
> Hi Emmanuel,
> 
> On Wed, Aug 21, 2013 at 5:20 PM, Emmanuel Bernard
> <emmanuel at hibernate.org> wrote:
> > Can you explain to me why you would need a different analyzer for a
> > wildcard query? My brain is still tanning on the beach.
> 
> Well, it's the Lucene way. Wildcard queries are usually not analyzed
> (see QueryParser or what you've done in Hibernate Search to be
> consistent with Lucene).
> 
> The reason often mentioned is that you can have analyzers removing *
> and ? which could be quite annoying for wildcard queries...
> 
> Apart from the filtering, you might also want a different tokenizer
> for wildcard queries.
> 
> The fact is that you HAVE to "analyze" your search terms to have
> results. Typically, we use analyzers to remove the accents and
> lowercase the search terms:
> - for a standard search, we can pass the search terms as is;
> - for the wildcard and fuzzy queries, we are forced to filter the
> search terms (lowercase + remove accents) before passing them to
> Hibernate Search/Lucene.
> 
> That's why I thought having a specific analyzer for this might help.

Oh ok, btw I think I do disable analyzers in the DSL query right? Of
course we might want to reenable it if a specific wildcard analyzer is
defined.

> 
> > Brainstorming here we could do the following
> >
> > @AnalyzerDef.target
> >
> > enum AnalyzerTarget { ALL, INDEXING, QUERY, WILDCARD }
> 
> Instead of ALL, I would prefer DEFAULT, I think.
> 
> > But that would also change the API for the dynamic analyzer I suppose.
> 
> Yep,
> 
> > It also does not cover the @Analyzer.impl usage.
> 
> Yep.
> 
> I haven't thought thoroughly about all the consequences of this idea.
> It's something which is often in our way so I thought it might be
> worth it to mention it and see if people are interested in it.
> 
> If so, I can probably prototype something to check what would be the
> issues to implement this change.

Fire away


More information about the hibernate-dev mailing list