2017-09-22 1 views
-1

J'utilise le moteur MyISAM et la recherche de texte intégral. J'ai une colonne text dans une table.
Supposons qu'il y ait une phrase demandé comme ceci:

« Nous avons deux voitures bleues »

et j'ai ces enregistrements dans text colonnes.rechercher une phrase et ses combinaisons via la recherche plein texte

  • Nous avons deux voitures bleues
  • nous
  • ont
  • deux
  • bleu
  • voitures
  • nous avons
  • deux bleus
  • nous avons deux
  • voitures bleues

... et toutes les combinaisons similaires à ci-dessus.

J'ai besoin d'une requête de recherche en texte intégral pour revenir résultat suivant avec ordre donné:

1 => Nous avons deux voitures bleues
2 => Nous avons deux bleus
3 => Nous avons deux
4 => nous avons
5 => nous
5 => ont
5 => deux
5 => bleu
5 => voitures

L'ordre après n'est pas important tellement donc j'ai répété , plusieurs fois. Je tente plusieurs modèles de texte complet, mais la commande est basée sur id (clé primaire) colonne

Toute aide est appréciée, merci.

Répondre

0

Enfin, je l'ai fait avec cette requête, mais je ne suis pas sûr de la performance.

SELECT tbl.*, 
MATCH(text) 
AGAINST (' 
("We have two blue cars") 
("We have two blue") 
("We have two") 
("We have") 
We have two blue cars' 
IN BOOLEAN MODE) as score FROM tbl where 

MATCH(text) 
AGAINST (' 
("We have two blue cars") 
("We have two blue") 
("We have two") 
("We have") 
We have two blue cars 
' IN BOOLEAN MODE) 
ORDER BY score DESC ;` 



Il retourne mon résultat suivant et prendre environ 0,0706 secondes avec 9240 dossiers.

0

Vous pouvez utiliser quelque chose comme ci-dessous, il sera utile d'obtenir la sortie désirée.

 Select column 
    from table 
    WHERE `TEXT` LIKE '%We%' and 
    `TEXT` LIKE '%have%' and 
    `TEXT` LIKE '% two%' and 
    'TEXT' LIKE '%blue%' and 
    'TEXT' LIKE '%cars%'; 
+0

Merci mais ce n'est pas la recherche du texte intégral. J'ai besoin de chercher et de récupérer db aussi rapidement que possible et il est disponible par recherche de texte intégral autant que je sache. – HosSeinM

+0

Essayez de lire via ce lien https://docs.microsoft.com/en-us/sql/relational-databases/search/full-text-search –

+0

Chetan comme mentionné ici https://docs.microsoft.com/fr us/sql/bases de données relationnelles/search/full-text-search # like L'opérateur Like a quelques limitations spécialement en terme de vitesse. – HosSeinM