Solr requête de recherche sur plusieurs champs
Est-il possible de rechercher dans Solr sur deux champs à l'aide de deux mots différents et de récupérer uniquement les résultats qui contiennent toutes les deux?
Par exemple, si j'ai le champs "type" et "emplacement" , je veux uniquement les résultats qui ont type='meubles' et location = 'bureau' dans eux.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser des opérateurs booléens et de recherche sur les champs individuels.
Si les valeurs sont fixes, il est préférable d'utiliser les Requêtes de Filtre pour la Performance.
fq=
parce que cela peut être plus rapide.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:
Appeler le gestionnaire de requêtes comme ceci:
Explication
Solr Docs
https://wiki.apache.org/solr/LocalParams
Vous pouvez également utiliser le boostQuery fonction de la dismaxRequest gestionnaire comme
Au lieu d'utiliser ET, ce pourrait être casser en deux filtrer les requêtes ainsi.