Stopwordok és stoplisták konfigurálása és kezelése Full-Text kereséshez

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Annak érdekében, hogy a teljes szöveges index ne legyen túlméretezett, az SQL Server adatbázismotor rendelkezik egy mechanizmussal, amely eltávolítja a gyakran előforduló sorokat, amelyek nem segítik a keresést. Ezeket az elvetett szövegelemeket stopwords-nek hívják. Az index létrehozása során a Full-Text motor kihagyja a stopwords parancsokat a teljes szöveges indexből. Ez azt jelenti, hogy a teljes szöveges lekérdezések nem keresnek stopword-on.

Term Description
Stopword A stopword egy adott nyelven jelentéssel rendelkező szó lehet. Például az angol nyelvben olyan szavak, mint a, and, is, és the kimaradnak a teljes szöveg indexből, mivel ismert, hogy ezek a keresés szempontjából haszontalanok. A stopword lehet olyan jel is, amelynek nincs nyelvi jelentése.
Stoplisták A stopwordokat adatbázisokban stoplistáknak nevezett objektumok segítségével kezelik. A stoplist olyan stopwords-listák listája, amelyek teljes szöveges indexhez társítva az adott index teljes szöveges lekérdezéseire lesznek alkalmazva.

Meglévő stoplista használata

Meglévő stoplistát a következő módokon használhat:

  • Használja a rendszer által biztosított stoplistát az adatbázisban. A Database Engine egy rendszerstoplistával érkezik, amely tartalmazza a leggyakrabban használt stopwordokat minden támogatott nyelvhez, vagyis minden olyan nyelvre, amely alapértelmezés szerint adott szómegszakítókhoz tartozik. A rendszer stoplistáját átmásolhatja, és testre szabhatja a saját példányát stop-szavak hozzáadásával és eltávolításával.

    A rendszer stoplista a Resource Database-ben van telepítve.

  • Használj egy másik adatbázisból származó meglévő egyedi stoplistát az aktuális kiszolgálópéldányon, majd szükség szerint adj hozzá vagy távolíts el stopszavakat.

Új stoplista létrehozása

Stoplistát létrehozhatsz Transact-SQL (T-SQL) vagy SQL Server Management Studio (SSMS) használatával.

Új stoplista létrehozása Transact-SQL használatával

Használja a CREATE FULLTEXT STOPLIST.

Készíts új stoplistát az SQL Server Management Studio-val

  1. Az Object Explorerben bontsa ki a kiszolgálót.

  2. Bontsa ki Adatbázisok, majd bontsa ki azt az adatbázist, amelyben létre szeretné hozni a teljes szöveges stoplistát.

  3. Bontsa ki Storage, majd kattintson a jobb gombbal a Full-Text Stoplistselemre.

  4. Válassza az Új Full-Text Stoplist lehetőséget.

  5. Adja meg az új stoplist nevét.

  6. Ha szeretné, megnevezhet valaki mást a stoplista tulajdonosaként.

  7. Válassza ki a következő stoplist-beállítások egyikét:

    • Üres stoplista létrehozása

    • Létrehozás a rendszer leállólistájából

    • Létrehozás egy meglévő teljes szöveges stoplistából

    További információért lásd: Új Full-Text Stoplist (Általános Oldal).

  8. Válassza OKlehetőséget.

Stoplist használata teljes szöveges lekérdezésekben

Ha leállítólistát szeretne használni a lekérdezésekben, azt egy teljes szöveges indexhez kell társítania. Az index létrehozásakor csatolhat egy stoplistát egy teljes szöveges indexhez, vagy később módosíthatja az indexet egy stoplista hozzáadásához.

tevékenység Módszer
Készíts egy teljes szöveges indexet, és társítsd egy stoplistához Használja a CREATE FULLTEXT INDEX.
Stoplista társítása vagy leválasztása egy meglévő teljes szöveges indexhez Használja a ALTER FULLTEXT INDEX.

Módosítsa a stoplistában szereplő stopwordöket

A stoplistában a stopwordokat módosíthatod Transact-SQL (T-SQL) vagy SQL Server Management Studio (SSMS) használatával.

Stopwords hozzáadása vagy eltávolítása egy stoplistából Transact-SQL (Transact-SQL) segítségével

Használja a ALTER FULLTEXT STOPLIST.

Stopword hozzáadása vagy eltávolítása egy stoplistából az SQL Server Management Studio-val

  1. Az Object Explorerben bontsa ki a kiszolgálót.

  2. Nyissa meg a adatbázisokelemet, majd bontsa ki az adatbázist.

  3. Bontsa ki a Storage elemet, majd válassza a Teljes szöveges stoplistákat.

  4. Kattintson a jobb gombbal arra a stoplistára, amelynek tulajdonságait módosítani szeretné, és válassza a Tulajdonságoklehetőséget.

  5. A Full-Text Leállítási lista tulajdonságai párbeszédpanelen:

    1. A Művelet listában válasszon a következő műveletek közül: Stopwordhozzáadása, Stopwordtörlése, Az összes stopwordtörlése vagy Stoplistatörlése.

    2. Ha a Stopword szövegmező engedélyezve van a kijelölt művelethez, írjon be egyetlen stopwordt. Ez a stopword egyedinek kell lennie. Nem lehet már ebben a stoplistában a választott nyelv esetében.

    3. Ha a Teljes szöveges listamező engedélyezve van a kijelölt művelethez, válasszon egy nyelvet.

  6. Válassza OKlehetőséget.

Stoplisták és használatuk kezelése

Használja az alábbi módszereket a stoplisták megtekintésére és kezelésére.

tevékenység Módszer
Az összes stopwords megtekintése egy stoplistán Használd sys.fulltext_stopwords.
Információt kapjon az összes stoplistáról a jelenlegi adatbázisban Használj sys.fulltext_stoplists és sys.fulltext_stopwords.
A szóelválasztó, a szinonimaszótár és a tiltószavak kombinációjának tokenizálási eredményei megtekinthetők Használd sys.dm_fts_parser.
Hibaüzenet mellőzése, ha a stopwords egy logikai művelet meghiúsulását okozza egy teljes szöveges lekérdezésen Használd ezt: Kiszolgáló konfigurációja: zajszavak átalakítása.

További információk a stopszó helyzetéről

Bár a teljes szöveges index figyelmen kívül hagyja a stopword használatát, figyelembe veszi azok helyzetét. Például vegyük a mondatot, . Instructions are applicable to these Adventure Works Cycles models Az alábbi táblázat a szavak pozícióját mutatja be a kifejezésben:

Szó Pozíció
Instructions 1
are 2
applicable 3
to 4
these 5
Adventure 6
Works 7
Cycles 8
models 9

A are, to és these zárószavak, amelyek a 2., 4. és 5. pozícióban vannak, kimaradnak a teljes szöveges indexből. A pozíciójukra vonatkozó információik azonban megmaradnak, így a többi szó pozícióját változatlanul hagyják a kifejezésben.

Zajszavak frissítése az SQL Server 2005-ről

Az SQL Server 2005 (9.x) zajszavait stopszavak váltották fel. Ha egy adatbázist frissít az SQL Server 2005 -ről (9.x), a zajos szavakat tartalmazó fájlok már nem lesznek használatban. Azonban a zaj-szó fájlok a FTDATA\FTNoiseThesaurusBak mappában vannak tárolva, és később használhatod őket, amikor frissíted vagy összeállítod a megfelelő stoplistákat. A zajszó fájlok stoplistákra való frissítéséről további információért lásd a Teljes szöveges keresés frissítése szakaszt.