sql >> Databáze >  >> RDS >> Sqlserver

Smíšené dotazy proti fulltextovému indexu

Nemyslím si, že byste měli mít nějaký problém, pokud správně rozumím vaší otázce. Často kombinuji fulltext a b-strom se skvělými výsledky. Když se provádí fulltextové vyhledávání, dívá se na každý "termín" s oddělovači jako na index, stejně jako na indexovaný sloupec s pouze jedním výrazem (uveďte nebo převezměte statistiku SQL). V každém případě musí SQL zjistit cestu k provedení. Fulltextové vyhledávání neupřednostňuje porovnávání celočíselných a datových hodnot – spíše pro porovnávání řetězců oddělených dat.

Představoval bych si, že byste chtěli i nadále využívat efektivitu konceptu b-stromu ve svůj prospěch. Vyhledávání indexu fulltextového katalogu se mi jeví jako mnohem komplexnější vyhledávání, i když mnohem výhodnější v situacích, kdy k analýze/porovnávání řetězců používáte „LIKE“.

Co dělám je:

 SELECT * FROM MyTable
  WHERE CONTAINS(columnName, '"Toy Dog" OR "live animal"')
    AND start_date > ###;

(informace o syntaxi najdete v tomto článku msdn )

P.S. při fulltextovém indexování celočíselných dat vypněte stoplist, aby tyto hodnoty nebyly při indexování katalogu ignorovány.

Doufám, že něco z toho pomůže! (Nikdo neodpověděl, tak jsem si myslel, že dám svou zkušenost)




  1. Vložte obrázek do databáze

  2. Proměnná vazby použitá v BEGIN/END se vymaže

  3. PostgreSQL - klauzule GROUP BY nebo použít v agregační funkci

  4. Použití UUID s EclipseLink a PostgreSQL