0
votes

Rails trouvez le contenu associé

J'essaie de trouver un moyen de trouver un contenu associé sur mon blog sur mes rails en utilisant le champ "Nom" que j'ai. Y a-t-il un moyen de trouver des postes étroitement liés dans la base de données en fonction de la similitude du champ "nom".

Par exemple: p> xxx pré>

et p>

Post 2 name field = this-similarity-something-else


5 commentaires

Que signifie "grossièrement la même"? Est-ce que "cette similitude - autre chose" "à peu près la même chose? "Foo-bar-autre chose" "est-il grossièrement la même chose? Est-ce que "cette similaire-ity-autre-autre chose" à peu près la même chose?


Serait seulement "cette similitude" - il y a en fait assez de champs sous l'enregistrement de nom de 50% ou plus. Certainement pas "cette-similaire-ity-autre chose"


Peut-être regarder le comme Opérateur de requête ...


Vous pouvez effectuer une recherche générique dans ActiveRecord comme: Post.Où ("Nom ILIKE '% Recherche-Term%') . Ceci est pour une post-grave DB autres moteurs de requête peuvent avoir une syntaxe différente pour ilike. Ilike est insensible à la casse.


Comment ferais-je post.where ("Nom ILike '% Recherche-Term%') contre deux champs de noms? Seriez-vous post.Où (" @ Nom_All_Posts .name ')


3 Réponses :


0
votes

Je ne sais pas exactement ce que vous recherchez dans des rails, mais c'est comme ça que je le ferais dans SQL:

Post.where("name ILIKE 'this-similarity%'")


0 commentaires

0
votes

Si vous souhaitez simplement faire correspondre une sous-chaîne, vous pouvez utiliser un fichier wildcard xxx

si vous souhaitez incorporer quelque chose de plus flexible, vous pouvez essayer de devenir plus avancé avec RANSACACK et ELASTICSESEARCH < / p>


2 commentaires

Ceci est venu près mais le problème est que j'ai plusieurs chaînes de noms. Par exemple Similarité-Model-One, Modèle de similarité-Deux, Satériquée-Modèle-Three et je ne peux pas comprendre comment dépasser "Modèle-One, modèle-Two, modèle-Three-Three" de Le champ Nom afin de trouver des correspondances qui finissent par travailler avec quelque chose comme ce @Related_posts = post.where ("nom comme '% # {@ post.name}'")


@Patricka. - Je pense que Ransack peut vous aider à mettre en place des recherches entre plusieurs champs. J'ai bien peur de ne pas savoir exactement comment cela se fait ou s'il y a un moyen simple de le faire sans ransack.



0
votes

Utiliser similaire à au lieu de comme - il permet de fonctionner avec des expressions régulières xxx


0 commentaires