You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-commits@lucene.apache.org by Apache Wiki <wi...@apache.org> on 2012/06/22 02:17:23 UTC
[Solr Wiki] Update of "ExtendedDisMax" by JanHoydahl
Dear Wiki user,
You have subscribed to a wiki page or wiki category on "Solr Wiki" for change notification.
The "ExtendedDisMax" page has been changed by JanHoydahl:
http://wiki.apache.org/solr/ExtendedDisMax?action=diff&rev1=10&rev2=11
Comment:
ps2, ps3
This parser supports full Lucene !QueryParser syntax including boolean operators 'AND', 'OR', 'NOT', '+' and '-', fielded search, term boosting, fuzzy, grouping with parens, phrase search, phrase slop, numeric ranges, wildcard search and more. If there is a syntax error in the input, such as non-existing field name or unbalanced double-quotes, the input is gracefully searched as literal strings.
== Query Structure ==
- For each "word" in the query string, dismax builds a !DisjunctionMaxQuery object for that word across all of the fields in the `qf` param (with the appropriate boost values and a tiebreaker value set from the `tie` param). These !DisjunctionMaxQuery objects are then put in a !BooleanQuery with the minNumberShouldMatch option set according to the `mm` param. If any other params are specified, a larger !BooleanQuery is wrapped arround the first !BooleanQuery from the `qf` options, and the other params (`bf`, `bq`, `pf`, `pf2`, `pf3`) are added as optional clauses. The only complex clause comes from from the `pf` param, which is a single !DisjuntionMaxQuery containing the whole query 'phrase' against each of the `pf` fields.
+ For each "word" in the query string, dismax builds a !DisjunctionMaxQuery object for that word across all of the fields in the `qf` param (with the appropriate boost values and a tiebreaker value set from the `tie` param). These !DisjunctionMaxQuery objects are then put in a !BooleanQuery with the minNumberShouldMatch option set according to the `mm` param. If any other params are specified, a larger !BooleanQuery is wrapped arround the first !BooleanQuery from the `qf` options, and the other params (`bf`, `bq`, `pf`, `pf2`, `pf3`, 'ps2', 'ps3') are added as optional clauses. The only complex clause comes from from the `pf` param, which is a single !DisjuntionMaxQuery containing the whole query 'phrase' against each of the `pf` fields.
/!\ :TODO: /!\ Need more detail on the query structure generated based on input ... a picture would be nice.
@@ -63, +63 @@
=== pf2 (Phrase bigram fields) ===
As with 'pf' but chops the input into bi-grams, e.g. "the brown fox jumped" is queried as "the brown" "brown fox" "fox jumped"
+ === ps2 (Phrase bigram slop) ===
+
+ <!> [[Solr4.0]] As with 'ps' but sets default slop factor for 'pf2'. If not specified, 'ps' will be used.
+
=== pf3 (Phrase trigram fields) ===
As with 'pf' but chops the input into tri-grams, e.g. "the brown fox jumped" is queried as "the brown fox" "brown fox jumped"
+
+ === ps3 (Phrase trigram slop) ===
+
+ <!> [[Solr4.0]] As with 'ps' but sets default slop factor for 'pf3'. If not specified, 'ps' will be used.
=== tie (Tie breaker) ===
Float value to use as tiebreaker in !DisjunctionMaxQueries (should be something much less than 1)