sql >> Database teknologi >  >> RDS >> Mysql

Sådan tillader du fuldtekstsøgning med bindestreger i søgeforespørgslen

Herfra http://dev.mysql.com/doc /refman/5.0/da/fulltext-search.html

En løsning til at finde et ord med bindestreger eller bindestreger i er at bruge FULD TEKST SØGNING I BOOLEAN TILSTAND, og ​​at omslutte ordet med bindestregen / bindestregen i dobbelte anførselstegn.

Eller herfra http://bugs.mysql.com/bug.php?id=2095

Der er en anden løsning. Det blev for nylig tilføjet til manualen:"Rediger en tegnsætfil:Dette kræver ingen rekompilering. True_word_char() makrobruger en "character type"-tabel til at skelne bogstaver og tal fra andre tegn. . Du kan redigere indholdet i et af tegnene sæt XML-filer til at angive, at '-' er et "bogstav." Brug derefter det givne tegnsæt til dine FULLTEXT-indekser."

Har ikke prøvet det på egen hånd.

Edit:Her er nogle flere yderligere oplysninger herfra http:/ /dev.mysql.com/doc/refman/5.0/en/fulltext-boolean.html

En sætning, der er omgivet af dobbelte anførselstegn ("""), matcher kun rækker, der indeholder sætningen bogstaveligt, som den blev skrevet. Fuldtekstmotoren opdeler sætningen i ord og udfører en søgning i FULLTEXT-indekset efter ordene. Før MySQL 5.0.3 udførte motoren derefter en understrengssøgning efter sætningen i de poster, der blev fundet, så matchet skal inkludere nonword-tegn i sætningen. Fra og med MySQL 5.0.3 behøver nonword-tegn ikke at blive matchet nøjagtigt:Sætningssøgning kræver kun, at matches indeholder nøjagtig de samme ord som sætningen og i samme rækkefølge. For eksempel matcher "test sætning" "test, sætning" i MySQL 5.0.3, men ikke før.

Hvis sætningen ikke indeholder ord, der er i indekset, er resultatet tomt. For eksempel, hvis alle ord enten er stopord eller kortere end minimumslængden af ​​indekserede ord, er resultatet tomt.



  1. Hvordan får man MySQL Connector/J til at fungere på Android?

  2. Hvordan grupperer jeg et datofelt for at få kvartalsvise resultater i MySQL?

  3. URL-strengformat til at oprette forbindelse til Oracle-database med JDBC

  4. Kan ikke nulstille root-adgangskoden med --skip-grant-tables på ubuntu 16