: Is the main difference between the StandardQueryHandler and : DisMaxQueryHandler the supported query syntax (and different query : parser used in each of them), and the fact that the latter creates : DisjunctionMaxQueries, while the former just creates vanilla : BooleanQueries? Are there any other differences?
the main differnece is the query string yes: Standard expects to get "lucene QueryParser" formatted queries, while DisMax expects to get raw user input strings ... Standard builds queries (wehter they be prefix or boolean or wildcard) using the QueryParser as is, while DisMax does a "cross product" of the user input across many differnet fields and builds up a very specific query structure -- which can then be augmented with aditional query clauses like the "bq" boost query and the "bf" boost function. there's no reason the StandardRequestHandler can't construct DisMaxQueries (once QueryParser has some syntax for them) and DisMaxRequestHandler does (at the outermost level) generate a BooleanQuery (with a custom "minShouldMatch" value set on it) but the main differnece is really the use case: if you want the clinet to specify the exact query structure that they want, use StandardRequstHandler. if you want the client to just propogate the raw search string typed by the user, without any structure or escaping, and get the nice complex DisMax style query across the configured fields, the DisMax handler was written to fill that niche. (load up the example configs, and take a look at the query toString from this url to see what i mean about the complex structure... http://localhost:8983/solr/select/?qt=dismax&q=how+now+brown+cow&debugQuery=1 -Hoss