2011-01-16 1 views
0

J'ai une liste de mots dans le tableau. Je veux rechercher tous les enregistrements contiennent, par exemple. livre et livres, stylo et stylos, cela signifie, pour tout le mot qui se termine par «s». La requête devrait montrer le mot sans 's' et le mot avec 's' aussi. pas une requête "SELECT * FROM words WHERE word LIKE '%s'" définition du schéma est,sql requête relative recherche aux mots recherchés précédents

mots = <word, part_of_speech>

Je dois rechercher sur Comment « mot » puis-je faire? Le résultat pourrait être,

book 
books 
pen 
pens 

Son quelque chose comme, s'il y a une valeur dans la Colum comme « mot » et il y a une autre valeur que « mot » + 'de montrer ensuite les lignes des deux « mot 'et' mot '+' s '. J'utilise sqlite.

+0

Il serait utile d'indiquer pour quel SGBD cela est-il? – RichardTheKiwi

+1

«usine» et «usines»; 'man' et' men' – SLaks

+1

Poisson -> Poissons, Souris -> Souris. Est-ce que tu rends compte de ces transitions au pluriel? Vous ne savez pas vraiment ce que votre question est après, voulez-vous dire qu'il ya une liste de mots dans une table, que vous voulez utiliser pour rechercher une autre table, en utilisant la liste dans le premier tableau au singulier et au pluriel? Et pour la table fouillée, les correspondances doivent-elles être uniquement des "mots entiers"? – RichardTheKiwi

Répondre

1
SELECT word FROM words WHERE word LIKE 'book%' 

correspondra à 'livre', 'livres', 'signet', etc

+0

ce n'est pas seulement sur le livre, mais aussi avec un autre mot et un suffixe spécifique. – karim

+0

pouvez-vous poster votre script CREATE TABLE? – James

+0

CREATE TABLE "no_en" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NON NUL, "non" VARCHAR NOT NULL COLLATE NOCASE, "en" VARCHAR NOT NULL COLLATE NOCASE, "part_of_speech" VARCHAR, catégorie INTEGER, FOREIGN KEY (catégorie) REFERENCES categories (id)) – karim

0

si vous voulez rechercher uniquement un sufix spécifique puis essayez

SELECT 
    * 
FROM 
    words 
WHERE 
    word = '%s' 
    or word = '%s' || 's' #change 's' to any addition you want to try 
0

Google le « Porter Découlant Algorithme "et l'appliquer à vos données avant vous le chargez. Cet algorithme est aussi proche que possible de convertir non seulement des pluriels mais beaucoup d'autres formes de mots en un seul mot. par exemple, "savant" devient "savant" et des choses comme ça. Si cela ne répond pas à vos normes de qualité, car il ne piège pas pour "souris" et d'autres exemples donnés dans d'autres réponses, vous devrez trouver un "fichier stemming". Je n'en connais pas de gratuits (ce qui ne veut pas dire qu'il n'y en a pas), mais celui que nous utilisons dans mon magasin fait partie d'un forfait commercial, donc je n'ai jamais eu à en trouver un gratuit. En tout état de cause, une fois que vous avez appliqué le mot à l'entrée, vous n'avez plus besoin de chercher plusieurs versions d'un mot, il vous suffit de rechercher la racine.

Questions connexes