1. Prebral sem nekaj dobrih objav,
Pregled iskanja v polnem besedilu SQL Server 2008 http://www.cnblogs.com/galaxyyao/archive/2009/02/13/1390139.html
Celotno besedilo kazala http://www.cnblogs.com/liulun/articles/1368655.html
Najprej kopirajte odstavek:
V: Zakaj iskanje s polnim besedilom? O: Ker je hitrost poizvedbe v besedilu počasna (ni priporočljivo graditi indeksa na besedilu, kar je razlog) V: Ali je kakšna razlika v primerjavi z letom 2005? A; Seveda obstaja razlika, ime pa predhaja integrirano. Prej je imel 05 ločeno indeksno datoteko in pogon, vendar je bil v 08 integriran v datotečno skupino. V: Kakšno je načelo? O: Na podlagi ključnih besed V: Kako se to nanaša na običajne indekse? O: Namen je izboljšati hitrost poizvedb. Indeksi s polnim besedilom imajo veliko enakih lastnosti kot indeksi Polno besedilno iskanje uporablja semantično iskanje (ta tehnika se sliši zelo poglobljeno) in se lahko uporablja tudi za binarne dokumente. V: Za kaj je to? O: Za najpreprostejši primer, iskanje člankov, zamegljeno ujemanje, hitro in veliko število lahko prav tako uvrščajo.
Dva. Potem pojdi na MSDN, da si ogledaš nekaj Dongdonga:
Pregled celotnega besedila indeksa
http://msdn.microsoft.com/zh-cn/library/cc879306.aspx
Nekateri izmed naslednjih citatov so prepisani na naslednji način:
1. V SQL Server 2008 je pogon za polno besedilo popolnoma integriran v pogon podatkovne baze. Polnobesedilni pogon je zdaj v SQL Server procesu (sqlservr.exe) namesto v ločenem procesu (msftesql.exe). Z integracijo pogona za polno besedilo v podatkovni pogon se izboljša upravljanje polnega besedila, optimizirajo hibridne poizvedbe in izboljša se splošna zmogljivost. Od: http://msdn.microsoft.com/zh-cn/library/ms142587.aspx
2. Koraki ustvarjanja iskanja po celotnem besedilu, preveč len, da bi naredil posnetke zaslona, vidim, da so to naredili drugi, citiram neposredno, vendar je od druge strani drugačen od mojega lokalnega iskanja, ne morem neposredno klikniti z desnim klikom na tabelo, da ustvarim iskanje po celotnem besedilu, privzeto je sivo, indeks lahko ustvarim le v katalogu indeksa s polnim besedilom v shrambi. http://www.sql-server-performance.com/2010/full-text-search-2008/
3. Sprva sem mislil, da naj bi bil imenik za iskanje v polnem besedilu imenik na ustreznem trdem disku, kar je podobno konceptu locune. V resnici pa je od SQL Serverja 2008 imenik s polnim besedilom virtualni objekt in ne pripada nobeni datotečni skupini. Kazalo vsebine v celotnem besedilu je logični koncept, ki predstavlja niz indeksov s polnim besedilom. Vir:
http://msdn.microsoft.com/zh-cn/library/ms142497.aspx
4. Indeks celotnega besedila lahko ustvarite le za prikaz tabele ali indeksa, za običajen pogled pa ne indeksa celotnega besedila.
Indeks polnega besedila je posebna vrsta funkcijskega indeksa, ki temelji na markerjih, ki ga generira in vzdržuje pogon za polno besedilo. Za ustvarjanje iskanja v celotnem besedilu v tabeli ali pogledu mora imeti tabela ali pogled edinstven, neničljiv, enostolpčni indeks. Pogon za polno besedilo mora uporabiti ta edinstven indeks, da vsako vrstico v tabeli preslika na edinstven stiskljiv ključ. Indeksi s polnim besedilom lahko vključujejo stolpce Char, Varchar, Nchar, Nvarchar, Text, Ntext, Image, XML, Varbinary in Varbinary(max).
5. Za ustvarjanje celotnega besedilnega indeksa na tabeli A obstaja predpostavka, da mora biti vsaj en edinstven indeks na tabeli A, torej če na tabeli A ni indeksa, ne želite ustvariti celotnega besedilnega indeksa na tabeli A.
V 6.SQL Server 2008 je velikost indeksa polnega besedila omejena le z razpoložljivimi pomnilniškimi viri računalnika, ki poganja SQL Server instanco. http://msdn.microsoft.com/zh-cn/library/cc879306.aspx
7. Poizvedba več stolpcev (iskanje po celotnem besedilu) Z določitvijo seznama stolpcev za iskanje lahko poizvedujete več stolpcev z uporabo predikata CONTAINS. Ti stolpci morajo biti iz iste tabele.
Uporabite oklepaje, IZBERI ime, Color FROM Production.Product WHERE CONTAINS(((ime, barva), 'rdeče');
Ali uporabite znak *, SELECT Name, Color FROM Production.Product WHERE CONTAINS(*, 'Red');
Vir: http://msdn.microsoft.com/zh-cn/library/ms142488.aspx
9. Poizvedba več stolpcev za več tabel
Lahko VSEBUJE ali VSEBUJE, na primer KJER VSEBUJE(t1. Ime, 'Red') ali VSE(t2. Ime, 'Red');
10. Optimizacija zmogljivosti polnih besedilnih poizvedb
Uporabite ALTER FULLTEXT CATALOG REORGANIZE za reorganizacijo kataloga s polnim besedilom.
ALTER FULLTEXT CATALOG ponovna obnova za stranke z ACCENT_SENSITIVITY=IZKLOP
Za več informacij si oglejte tole: http://msdn.microsoft.com/zh-cn/library/cc879244.aspx
11. Izvedite iskanje predpone http://msdn.microsoft.com/zh-cn/library/ms142492.aspx
Za iskanje besed ali fraz z določenim predpono lahko uporabite iskanje po celotnem besedilu.
Ko izvedete iskanje po predponi, se vrnejo vsi elementi v stolpcu, ki vsebujejo besedilo, ki se začne z določeno predpono. Na primer, za iskanje vseh vrstic, ki vsebujejo predpono top (kot so topple, topping in top sam), bi poizvedba izgledala takole:
SELECT * FROM Product WHERE CONTAINS (ProductName, '"auto*"' ); Vse besedilo, ki se ujema z besedilom, določenim pred zvezdico (*), bo vrnjeno.
Opomba: Če ne dodate dvojnih narekovajev pred in za besedilom in zvezdico (npr. VSEBUJE (DEscrip{filter}tION, 'top*')), iskanje po celotnem besedilu ne bo uporabilo zvezdice kot nadomestnega znaka.
Ko je predpona fraza, se vsak žeton, ki sestavlja to frazo, obravnava kot ločen prefiks. Vse vrstice, ki vsebujejo besede, ki se začnejo s temi predponami, so vrnjene. Na primer, predpona "light bread*" bo iskala vrstice z besedilom "light breaded", "lightly breaded" ali "light bread", vendar ne bo vrnila "Lightly toasted bread".
|