/ / Co to jest MySql odpowiednik wyszukiwania pełnotekstowego serwera Sql? - mysql

Co to jest równoważnik MySql wyszukiwania pełnotekstowego serwera SQL? - mysql

Pracowałem z Sql Server w przeszłości i używałemjest to bardzo fajna funkcja o nazwie Wyszukiwanie pełnotekstowe Sql. Teraz muszę współpracować z MySql. Czy ktoś może mi powiedzieć, co jest równoważne wyszukiwaniu pełnotekstowemu w MySql? Używam bezpłatnej wersji MySql, a nie wersji komercyjnej. Jeśli nie, co jeszcze możemy zrobić, aby naśladować wyszukiwanie pełnotekstowe i pokonać ograniczenia operatora LIKE?

Z góry dziękuję :)

Odpowiedzi:

3 dla odpowiedzi № 1

Zobacz dokumentację dotyczącą obsługi wyszukiwania pełnotekstowego w mysql:

http://dev.mysql.com/doc/refman/5.1/en/fulltext-search.html

Będziesz chciał zastosować indeksy pełnotekstowe do kolumn, aby umożliwić wyszukiwanie pełnotekstowe w tych kolumnach. Zauważ, że mysql obsługuje tylko indeksowanie pełnotekstowe w tabelach MyISAM.

Jako przykład, na wypadek gdyby powyższy link przestał działać, zobacz pełny przykład z dokumentacji:

mysql> CREATE TABLE articles (
->   id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
->   title VARCHAR(200),
->   body TEXT,
->   FULLTEXT (title,body)
-> );
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO articles (title,body) VALUES
-> ("MySQL Tutorial","DBMS stands for DataBase ..."),
-> ("How To Use MySQL Well","After you went through a ..."),
-> ("Optimizing MySQL","In this tutorial we will show ..."),
-> ("1001 MySQL Tricks","1. Never run mysqld as root. 2. ..."),
-> ("MySQL vs. YourSQL","In the following database comparison ..."),
-> ("MySQL Security","When configured properly, MySQL ...");
Query OK, 6 rows affected (0.00 sec)
Records: 6  Duplicates: 0  Warnings: 0

mysql> SELECT * FROM articles
-> WHERE MATCH (title,body)
-> AGAINST ("database" IN NATURAL LANGUAGE MODE);
+----+-------------------+------------------------------------------+
| id | title             | body                                     |
+----+-------------------+------------------------------------------+
|  5 | MySQL vs. YourSQL | In the following database comparison ... |
|  1 | MySQL Tutorial    | DBMS stands for DataBase ...             |
+----+-------------------+------------------------------------------+

Ref http://dev.mysql.com/doc/refman/5.1/en/fulltext-natural-language.html


2 dla odpowiedzi nr 2

Na MyISAM stoły, MySQL obsługuje FULLTEXT indeksy:

CREATE TABLE mytable (id INT, caption TEXT, content TEXT, FULLTEXT KEY fx_mytable_caption_content (caption, content)) ENGINE=MyISAM;

SELECT  *
FROM    mytable
WHERE   MATCH(caption, content) AGAINST ("my search query")

1 dla odpowiedzi nr 3

Możesz utworzyć indeks pełnotekstowy w jednej lub więcej kolumnach. Następnie można użyć kwerend wyszukiwania pełnotekstowego do zapytania tabeli. Widzieć Indeks pełnotekstowy MySQL i Funkcje wyszukiwania pełnotekstowego MySQL.

Typowe zapytanie wygląda następująco:

 SELECT * FROM books
WHERE    MATCH (title, summary) AGAINST ("harry potter")
ORDER BY MATCH (title, summary) AGAINST ("harry potter")
LIMIT 0, 10