Hi, Suppose we have a query "balcony table". I want results to be returned by exact match (first priority) and by single words matching as well (for "balcony" or for "table"). So currently my solution is:
Analyzer analyzer = new SnowballAnalyzer("English", StopAnalyzer.ENGLISH_STOP_WORDS_SET); QueryParser contentParser = new QueryParser(Version.LUCENE_29, "content", analyzer); Query phraseContentQuery = contentParser.Parse("\""+QueryParser.Escape(luceneQuery)+"\""); if (phraseContentQuery is PhraseQuery) { ((PhraseQuery)phraseContentQuery).SetSlop(100); } Query simpleParsedQuery = contentParser.Parse(QueryParser.Escape(luceneQuery)); BooleanQuery boolQuery = new BooleanQuery(); boolQuery.Add(simpleParsedQuery, BooleanClause.Occur.SHOULD); boolQuery.Add(phraseContentQuery, BooleanClause.Occur.SHOULD); TopDocs docs = searcher.Search(boolQuery, 1500); ScoreDoc[] hits = docs.scoreDocs; Is it the right way? Is there another way, without running two queries (simpleParsedQuery and phraseContentQuery)? Thanks! Maxim -- View this message in context: http://lucene.472066.n3.nabble.com/Searching-both-phrase-and-it-s-words-tp3992276.html Sent from the Lucene - Java Users mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org For additional commands, e-mail: java-user-h...@lucene.apache.org