Ö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)
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 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áhozFULLTEXT
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