Hi, I understand that generally speaking you should use the same analyzer on querying as was used on indexing. In my code I am using the SnowballAnalyzer on index creation. However, on the query side I am building up a complex BooleanQuery from other BooleanQuerys and/or PhraseQuerys on several fields. None of these require specifying an analyzer anywhere. This is causing some odd results, I think, because a different analyzer (or no analyzer?) is being used for the query.
Question: how do I build my boolean and phrase queries using the SnowballAnalyzer? One thing I did that seemed to kind of work was to build my complex query normally then build a snowball-analyzed query using a QueryParser instantiated with a SnowballAnalyzer. To do this, I simply pass the string value of the complex query to the QueryParser.parse() method to get the new query. Something like this: // build a complex query from other BooleanQuerys and PhraseQuerys BooleanQuery fullQuery = buildComplexQuery(); QueryParser parser = new QueryParser(Version.LUCENE_30, "title", new SnowballAnalyzer(Version.LUCENE_30, "English")); Query snowballAnalyzedQuery = parser.parse(fullQuery.toString()); TopScoreDocCollector collector = TopScoreDocCollector.create(10000, true); indexSearcher.search(snowballAnalyzedQuery, collector); Like I said, this seems to kind of work but it doesn't feel right. Does this make sense? Is there a better way? thanks in advance, Bill