One thing I really wanted to change in the 3.x solrconfig.xml, once Search API Solr got a dedicated one, was changing the default request handler to use the ExtendedDisMax query parser. This seems to unite all the advantages of the dismax parser (user-friendly, robust, matching across several fields) with those of the standard handler (advanced features like wildcards, range queries, …).
Has this been discussed in the Apachesolr module? If yes, with what conclusion?
Could we make this the default in our unified solrconfig.xml file? (Otherwise, of course, we can still always pass &defType=edismax
with our queries.)
Comment | File | Size | Author |
---|---|---|---|
#17 | 1606582-17.patch | 3.64 KB | Nick_vh |
#16 | 1606582-13.patch | 3.63 KB | Nick_vh |
#14 | 1606582-12.patch | 3.65 KB | Nick_vh |
#12 | 1606582-11.patch | 2.71 KB | Nick_vh |
#10 | 1606582-10.patch | 3.05 KB | Nick_vh |
Comments
Comment #1
cpliakas CreditAttribution: cpliakas commentedI believe we use EDismax for Acquia Search, so I am guessing that Apache Solr Search Integration uses this. Peter and Nick would have more knowledge that I here.
Comment #2
Nick_vhI'm ok with having edismax as default for the 3.x
I an imagine some confusions such as "my website works on dev but not in production", but hopefully documentation can help in that case. Perhaps the module should give a warning is someone is using Solr 1.4 that it would benefit from some features and speed if he would upgrade. (dismissible message)
Comment #3
cpliakas CreditAttribution: cpliakas commentedI think along these lines, Search API has some configs that set default parameters in it's request handler. If I am reading the configs right, these could be added application level as well? I am pretty sure this is the case, as I ended up adding them to the Acquia Search for Search API module so that it would function the same on top of our solrconfig.xml file. It seemed to work, but I wanted to see if we should move the default params to the application layer to help consolidate the solrconfig.xml file?
Comment #4
Nick_vhFirst try, we still end up with two request handlers. Could we move this to one request handler and do all the parameters in the modules?
Comment #5
cpliakas CreditAttribution: cpliakas commentedI would +1 the "do all the parameters in the modules" approach, with a second option of 2 request handlers if we cannot agree on the params in module approach.
Comment #6
drunken monkeyWe can't set both of those to
default="true"
, unless I'm mistaken.Other than that, yes, I guess setting the individual options in the request would be a good approach.
Attached is a list of the differences between both request handler settings, as they are now. As can be seen, those are relatively small, only the highlighting parts differ really wildly. (More in the next comment, where I can use Dreditor magic …)
Also, as said, I'd be in favor of
edismax
as thedefType
(at least for the Search API).Comment #7
drunken monkeyI don't know whether apachesolr needs the parameters echoed, but I'd surely have nothing against omitting the header.
OK, based on the different schemas, these of course would differ.
With
ps
andmm
I haven't really tested enough to say what parameters make more sense, or whether I'd be open to changing those of the Search API to the others.Highlighting, as said, is the big difference. We'd really have to do that in the modules.
On the other hand, what does only having one request handler really buy us? Solr web hosters might even be glad to have the chance to modify these separately, and not having to deal with too many parameters set in code. With two handlers, we'd only have to send one different parameter each (also keeping the queries shorter …).
Also, if we'd stay with two handlers, I'd like mine with an underscore ("search_api"), to keep this uniformly.
Comment #8
drunken monkeyComment #9
Nick_vhTomas, great progress there.
Some idea for the separate handlers
I'd like a switch in the solrcore.properties that defines apachesolr=true and search_api=true (and/or false naturally).
So using this syntax
and this if structure :
We could make it lean and mean and have separate config files for this. Just brainstorming anyhow.
Continuing with my movie now :)
Comment #10
Nick_vhNew try, hurray munich sprint!
Comment #11
Nick_vhComment #12
Nick_vhComment #13
drunken monkeyLooks great!
Just a few comments:
This should be hyphenated:
pink-pony
.I'd just leave that line out.
Why only use this for MLT?
I'd deactivate it for both – if a site is running into this, the admin should just decide whether completely aborting is better. But having a fixed setting there for all sites, without knowing whether it will be appropriate , isn't such a good idea in my opinion.
Or we can use a variable instead. (Yes, I love those!)
Comment #14
Nick_vhComment #15
Nick_vhComment #16
Nick_vhComment #17
Nick_vhComment #18
drunken monkeyGo ahead! :D
Comment #19
Nick_vhCommitted in accordance with drunkenmonkey, pwolanin and myself.