Les solutions proposées ont l'inconvénient, que vous avez des soins à ce sujet échapper les caractères spéciaux.
Si l'utilisateur recherche pour "type:d'or ET de l'emplacement:pause-café", la requête échoue.
Je suggère de combiner deux edismax des gestionnaires:
<requestHandler name="/combine" class="solr.SearchHandler" default="false">
<lst name="invariants">
<str name="q">
(_query_:"{!edismax qf='type' v=$uq1}"
AND _query_:"{!edismax qf='location' v=$uq2}")
</str>
</lst>
</requestHandler>
Appeler le gestionnaire de requêtes comme ceci:
http://localhost:8983/solr/collection1/combine?uq1=furniture&uq2=office
Explication
- Les variables $uq1 et $uq2 sera remplacé par les paramètres de la requête uq1 et uq2 volonté.
- Le résultat de la première edismax requête (uq1) est associé par la logique ET la deuxième edismax requête (uq2)
Solr Docs
https://wiki.apache.org/solr/LocalParams