sql >> Database >  >> RDS >> Mysql

Zoeken in volledige tekst met koppeltekens in de zoekopdracht toestaan

Vanaf hier http://dev.mysql.com/doc /refman/5.0/en/fulltext-search.html

Een oplossing om een ​​woord met een streepje of koppelteken te vinden, is door VOLLEDIGE TEKST ZOEKEN IN BOOLEAN-MODUS te gebruiken en het woord tussen het koppelteken / streepje tussen dubbele aanhalingstekens te plaatsen.

Of vanaf hier http://bugs.mysql.com/bug.php?id=2095

Er is een andere oplossing. Het is onlangs aan de handleiding toegevoegd:"Wijzig een tekenset-bestand:dit vereist geen hercompilatie. De true_word_char() maakt gebruik van een macro-tabel met "tekentype" om letters en cijfers van andere tekens te onderscheiden. . U kunt de inhoud in een van de tekens bewerken stel XML-bestanden in om aan te geven dat '-' een 'letter' is. Gebruik dan de gegeven tekenset voor uw FULLTEXT-indexen."

Ik heb het niet alleen geprobeerd.

Bewerken:hier is wat meer aanvullende informatie van hier http:/ /dev.mysql.com/doc/refman/5.0/en/fulltext-boolean.html

Een zin die tussen dubbele aanhalingstekens (""") staat, komt alleen overeen met rijen die de zin letterlijk bevatten, zoals deze is getypt. De full-text engine splitst de zin op in woorden en zoekt in de FULLTEXT-index naar de woorden. Voorafgaand aan MySQL 5.0.3 voerde de engine vervolgens een substring-zoekopdracht uit voor de woordgroep in de gevonden records, dus de overeenkomst moet niet-woordtekens in de woordgroep bevatten.Vanaf MySQL 5.0.3 hoeven niet-woordtekens niet exact overeen te komen:Zoeken op woordgroep vereist alleen dat overeenkomsten exact dezelfde woorden bevatten als de woordgroep en in dezelfde volgorde. Bijvoorbeeld, "testzin" komt overeen met "test, woordgroep" in MySQL 5.0.3, maar niet eerder.

Als de zin geen woorden bevat die in de index staan, is het resultaat leeg. Als alle woorden bijvoorbeeld stopwoorden zijn of korter zijn dan de minimumlengte van geïndexeerde woorden, is het resultaat leeg.



  1. Prestatieverschillen tussen gelijk (=) en IN met één letterlijke waarde

  2. Hoe Galera Cluster te automatiseren met behulp van de ClusterControl CLI

  3. Het gemiddelde krijgen van de top 10 leerlingen van elke school

  4. MySQL-installatie