MySQL Boolean teljes szöveges keresések

Összefoglaló: ebben a bemutatóban megtanulja, hogyan végezzen MySQL Boolean teljes szöveges kereséseket. Ezen kívül megtanulja, hogyan használhatja a Boolean operátorokat nagyon összetett keresési lekérdezések kialakításához.

Elvezetés a MySQL Boolean teljes szöveges keresésekhez

A természetes nyelvű teljes szöveges keresés mellett a MySQL támogatja a teljes szöveges keresés egy további formáját, amelyet Boolean teljes szöveges keresésnek nevezünk. A Boolean módban a MySQL a természetes nyelvi kereséshez hasonlóan a fogalom helyett szavakra keres.

A MySQL lehetővé teszi, hogy a Boolean módban a Boolean operátorokkal együtt nagyon összetett lekérdezéseken alapuló teljes szöveges keresést végezzen. Ezért a teljes szöveges keresés Boolean módban a tapasztalt felhasználók számára alkalmas.

A teljes szöveges keresés Boolean módban történő végrehajtásához a IN BOOLEAN MODE módosítót használja a AGAINST kifejezésben. A következő példa azt mutatja, hogyan kereshet olyan terméket, amelynek termékneve tartalmazza a Truck szót.

Code language: SQL (Structured Query Language) (sql)

mysql boolean tex keresések - terméknév a Truck kulcsszóval
Két olyan terméket kapunk vissza, amelyek termékneve tartalmazza a Truck szót.

Azoknak a termékeknek a megkereséséhez, amelyek terméknevei tartalmazzák a Truck szót, de a Pickup kulcsszót tartalmazó sorokat nem, használhatja az exclude Boolean operátort ( - ), amely a Pickup kulcsszót kizáró eredményt adja vissza, mint a következő lekérdezés:

Code language: SQL (Structured Query Language) (sql)
mysql boolean tex keresések Boolean operátorral

MySQL Boolean teljes szöveges keresés operátorai

A következő táblázat a teljes szöveges keresés Boolean operátorait és jelentésüket mutatja be:

Operátor Megnevezés
+ A szónak jelen kell lennie.
Kizárja, a szónak nem szabad jelen lennie.
> Beveszi, és növeli a rangsor értékét.
< Beveszi, és csökkenti a rangsor értékét.
() A szavak csoportosítása részkifejezésekbe (lehetővé téve, hogy csoportként bevonhatók, kizárhatók, rangsorolhatók stb. legyenek).
~ Negálja egy szó rangsorolási értékét.
* Hézagjel a szó végén.
“” Meghatároz egy kifejezést (az egyes szavak listájával szemben a teljes kifejezést illeszti be vagy kizárja).

A következő példák azt szemléltetik, hogyan használhatók a bólés teljes szövegű operátorok a keresési lekérdezésben:

A két szó közül legalább az egyiket tartalmazó sorok keresése: mysql vagy tutorial

‘mysql tutorial’

A mindkét szót tartalmazó sorok keresése:

‘+mysql +tutorial’

A mysql és tutorial szót tartalmazó sorok kereséséhez, de a “tutorial” szót tartalmazó sorok magasabb rangsorba helyezéséhez:

‘+mysql tutorial’

A “mysql” szót tartalmazó sorok keresése, de a “tutorial”-t nem”

‘+mysql -tutorial’

A “mysql” szót tartalmazó sorok keresése, és a “tutorial” szót tartalmazó sorok alacsonyabb rangsorolása.

‘+mysql ~tutorial’

A “mysql” és “tutorial”, vagy “mysql” és “training” szavakat bármilyen sorrendben tartalmazó sorok keresése, de a “mysql tutorial” szót tartalmazó sorokat előrébb sorolja, mint a “mysql training” szót tartalmazó sorokat.

‘+mysql +(>tutorial <training)’

Az “my”-vel kezdődő szavakat tartalmazó sorok keresése, például “mysql”, “mydatabase” stb, a következőket használja:

‘my*’

MySQL bólés teljes szöveges keresés fő jellemzői

  • A MySQL nem rendezi automatikusan a sorokat relevancia szerint csökkenő sorrendbe a bólés teljes szöveges keresés során.
  • A bólés lekérdezések végrehajtásához az InnoDB tábláknak a MATCH kifejezés minden oszlopához FULLTEXT index szükséges. Vegyük észre, hogy a MyISAM tábláknál ez nem szükséges, bár a keresés elég lassú.
  • A MySQL nem támogatja a többszörös Boolean operátorokat egy keresési lekérdezésben az InnoDB táblákon, pl. ‘++mysql’. A MySQL hibát ad vissza, ha ezt megteszi. A MyISAM azonban másképp viselkedik. Figyelmen kívül hagyja a többi operátort, és azt az operátort használja, amelyik a legközelebb áll a keresőszóhoz, például a ‘+-mysql’-ből ‘-mysql’ lesz.
  • Az InnoDB teljes szöveges keresés nem támogatja az utolsó plusz (+) vagy mínusz (-) jelet. Csak a vezető plusz vagy mínusz jelet támogatja. A MySQL hibát fog jelenteni, ha a keresőszó ‘mysql+’ vagy ‘mysql-‘. Ezenkívül a következő vezető plusz vagy mínusz jokerrel együtt érvénytelen: +*, +-
  • Az 50%-os küszöbérték azt jelenti, hogy ha egy szó a sorok több mint 50%-ában szerepel, a MySQL figyelmen kívül hagyja azt a keresési eredményben.

Ezzel a bemutatóval megtanulta, hogyan végezhet teljes szövegű MySQL Boolean kereséseket számos hasznos Boolean operátorral.

  • Hasznos volt ez a bemutató?
  • IgenNem