SOLR - Utiliser le champ de texte unique dans le schéma de recherche de texte intégral
Je suis familier avec SOLR.
Je voudrais utiliser SOLR pour la recherche plein texte pour de nombreux types d'entités. Je ne veux pas créer un Document pour chaque type d'entité. Je ne veux pas être capable de rechercher des domaines spécifiques. Je suis seulement intéressé par ce que si une chaîne de caractères spécifiée est n'importe où dans n'importe quel élément.
Dans la base de données de termes, par exemple j'ai une table News et une table Employé et je recherche le mot "pomme", je n'ai pas l'esprit dans lequel il est, je ne veux récupérer l'ID de base de données à partir des dossiers qui la contiennent.
Pourrait-il être une solution, que j'utilise un SOLR schéma quelque chose comme ceci:
<fields>
<field name="id" type="string" indexed="true" stored="true"/>
<field name="content" type="text" indexed="true" stored="false"/>
</fields>
Donc, j'ai seulement besoin d'une pièce d'identité et le contenu. J'ai mis toutes les données, dans laquelle je veux être en mesure de recherche dans un 'contenu' champ. Quand je fais une recherche pour certains mots, il le cherche dans le 'id' et l'int du contenu.
Est-ce une bonne idée? Toute la performance, ou un problème de conception?
Grâce,
Tamas
Vous devez vous connecter pour publier un commentaire.
Voir https://wiki.apache.org/solr/SchemaXml#Copy_Fields. Il dit:
Une exigence commune est de copier ou de fusionner tous les champs de saisie en un seul solr champ. Cela peut être fait comme suit:-
C'est généralement ce qui est fait pour effectuer une recherche sur plusieurs champs.
Mais si vous ne voulez même pas les originaux de vos champs, à concaténer tous vos champs dans un grand champ
content
et index Solr. Il devrait y avoir aucun problème avec cela.Vous pouvez soit copyField de texte (voir l'exemple dans la distribution) et le définir comme valeur par défaut du champ ("df" paramètre dans solrconfig.xml pour l'sélectionnez gestionnaire).
Ou, si vous anticipez les besoins plus complexes en bas de la ligne et/ou non-des recherches de texte, je vous recommande de regarder eDismax avec qf paramètre et il prendra en charge la recherche de tous ces champs lui-même.