Supposons que j'ai une base de données MySQL nommée DB et une table nommée ContactInfo. Ce qui suit est sa structure et des données par exemple (un seul élément):Recherche plein texte à partir de la base de données
Tableau ---- ContactInfo:
----------------------------------------------------------- name fullname phone ----------------------------------------------------------- NASA National Aeronautics and Space Administration 00000 -----------------------------------------------------------
Maintenant, je veux rechercher les données sous la table " ContactInfo "en utilisant la méthode suivante:
1) Peu importe que j'inscrive" NASA "ou" Administration Nationale de l'Aéronautique et de l'Espace "ou le numéro de téléphone, la ligne droite (dans cet exemple, juste la première ligne) doit être retournée à moi. 2) Lorsque je saisis «Administration nationale de l'aéronautique» ou «Administration nationale de l'espace» ou «Administration américaine de l'aéronautique et de l'espace» ou «NASA américaine» qui ne correspond pas exactement à la base de données, la première ligne doit être retourné à moi puisque le contenu de la première ligne sont liés à la chaîne demandée.
La manière dont deux peuvent être considérés comme la recherche obscure.
J'ai envisagé d'utiliser la "recherche contextuelle complète" telle que "Hpyer estraier" et "Lucene". Cependant j'ai trouvé que mon exigence est différente plus ou moins. Lorsque vous utilisez "Hyper estraier" ou "Lucene", les index doivent être construits d'abord en fonction du texte brut analysé. Puis commencez à chercher.
Est-ce que cela signifie que je devrais changer les données de ma base de données en plusieurs fichiers texte (chaque enregistrement de la table en un seul fichier), puis construire l'index en fonction de ces fichiers?
BTW, je viens de découvrir que MySQL supporte la recherche en texte intégral, mais nous devons gérer quelques caractères chinois, mais il semble que mysql supporte parfaitement les caractères chinois.
Alors, n'importe qui peut me donner une suggestion?
Il semble que le sphinx ne supporte que php, mais notre application est construite sous java.Et je trouve un autre sphinx-4, quelle est la différence? – hguser
Java n'a pas besoin de construire dans le support sphinx. Vous pouvez utiliser SphinxSE 'SE = Storage Engine' http://sphinxsearch.com/docs/current.html#sphinxse-using ou SphinxQL http://sphinxsearch.com/docs/current.html#sphinxql qui est un démon qui simule un vrai serveur MySQL et vous permet d'effectuer des requêtes. Les deux méthodes exigent que le démon sphinx soit opérationnel. SphinxQL est plus facile à configurer parce que SphinxSE vous oblige à recompiler MySQL avec le support sphinx mais SphinxSE est plus pratique à interroger puisque vous pouvez interroger les id_produits d'une recherche sphinx et rejoindre directement la table des produits en une seule étape. –