Hi,
Here's one that I can't wrap my head around. The main question is: why
are the search terms treated differently in eDisMax if the query expands
to a multi-word synonym, and there are different field types and q.op=AND?
This gets complicated quickly, so I tried to reproduce the results with
the techproducts example:
1. Start with vanilla Solr 8.8.2
2. echo "cor => Corsair" >>
server/solr/configsets/sample_techproducts_configs/conf/synonyms.txt
4. echo "cmi => Corsair Microsystems" >>
server/solr/configsets/sample_techproducts_configs/conf/synonyms.txt
4. bin/solr start -e techproducts
Now, a basic query that works fine produces 2 results:
http://localhost:8983/solr/techproducts/select?q=corsair+microsystems+memory&debugQuery=true&defType=edismax&qf=name+manu+cat&q.op=AND
But if I use the synonym, I don't get any results:
http://localhost:8983/solr/techproducts/select?q=cmi+memory&debugQuery=true&defType=edismax&qf=name+manu+cat&q.op=AND
If I leave cat field out, however, I get 2 results:
http://localhost:8983/solr/techproducts/select?q=cmi+memory&debugQuery=true&defType=edismax&qf=name+manu&q.op=AND
Also if leave q.op out and add AND between the terms, I get 2 results
even with the cat field:
http://localhost:8983/solr/techproducts/select?q=cmi+AND+memory&debugQuery=true&defType=edismax&qf=name+manu+cat
The single-word synonym works just fine:
http://localhost:8983/solr/techproducts/select?q=cor+memory&debugQuery=true&defType=edismax&qf=name+manu+cat&q.op=AND
Can anyone shine a light on what's happening here?
Additional notes:
1. This is a simplified example, and the real-world case is much more
complicated. It has our custom class create the synonyms for compound
words in Finnish, and the queries come from users.
2. As far as I can see mm doesn't affect the results in any meaningful
way, but I just might be doing something wrong.
3. I included the debugQuery parameter so that it's easy to see how
different the queries become.
Best Regards,
Ere
--
Ere Maijala
Kansalliskirjasto / The National Library of Finland