Huh, okay, I didn't know that #2 happened at all. Can you explain or point me to documentation to explain when it happens? I'm afraid I'm having trouble understanding << if the analyzer returns more than one position back from a "queryparser token" (whitespace). >>
Not entirely sure what that means. Can you give an example? As much as the query parser pre-tokenization is a problem in many cases (for me too), I'm not sure if dismax could happen without some pre-tokenization, doesn't it need that so it can combine the scores of the individual words by "maximum disjunction" -- it's got to know what the individual terms are, if it's going to dismax combine them, no? I'm not sure if "the queryparser forms a phrase query without explicit phrase quotes" is a problem for me, I had no idea it happened until now, never noticed, and still don't really understand in what circumstances it happens. Jonathan ________________________________________ From: Robert Muir [rcm...@gmail.com] Sent: Saturday, September 25, 2010 10:58 AM To: solr-user@lucene.apache.org Subject: Re: bi-grams for common terms - any analyzers do that? On Sat, Sep 25, 2010 at 10:33 AM, Jonathan Rochkind <rochk...@jhu.edu>wrote: > Wow, I never heard of autoGeneratePhraseQueries before. Is there any > documentation of what it does? > > My initial reaction is being confused because this sounds kind of like the > opposite of hte original issue. The original issue is that the query parsers > are splitting on whitespace _before_ they give tokens to the field > analyzers. The query parsers actually do this only with queries that are > NOT explicit phrase queries. I woudln't call this behavior "automatically > generating phrase queries" exactly, and wouldn't expect that turning off > "automatic generating of phrase queries" would prevent the pre-tokenization > by the query parser. But... it does somehow? > this is in reference to Tom's comment on his "l'art" problem ( http://www.hathitrust.org/blogs/large-scale-search/tuning-search-performance ). so, there are two problems: 1. that the queryparser "pre-tokenizes" on whitespace at all. 2. that the queryparser forms a phrase query, if the analyzer returns more than one position back from a "queryparser token" (whitespace). turning off autoGeneratePhraseQueries only solves problem #2, because its not appropriate for many languages. Before this option (e.g. Solr 1.4.x), you had to use the PositionFilter to workaround this problem. But PositionFilter simply "flattens/stacks" the positions (makes it seem as if they are all synonyms). With PositionFilter you couldn't have phrase queries at all... and you don't get a BooleanQuery coordination factor. with autoGeneratePhraseQueries=false, you won't get a phrase query unless it was in double quotes... its just that simple. fixing problem #1 alltogether, is the way to go. Because then the tokenization would be left to the analyzer completely, and you would have a lot more flexibility: https://issues.apache.org/jira/browse/LUCENE-2605 -- Robert Muir rcm...@gmail.com