sql >> Databáze >  >> RDS >> Mysql

Relevance fulltextového vyhledávání se měří v?

Základní datová struktura pro systém vyhledávání textu je Invertovaný index . Toto je v podstatě seznam slov nalezených ve sbírce dokumentů se seznamem dokumentů, ve kterých se vyskytují. Může také obsahovat metadata o výskytu každého dokumentu, jako je například počet výskytů slova.

Dokumenty obsahující slova lze vyhledávat shodou s hledanými výrazy. K určení relevance se používá heuristika známá jako Cosine Ranking se počítá na hity. Funguje to tak, že se zkonstruuje n-rozměrný vektor s jednou složkou pro každý z n hledaných výrazů. V případě potřeby můžete také zvážit hledané výrazy. Tento vektor poskytuje bod v n-rozměrném prostoru, který odpovídá vašim hledaným výrazům.

Podobný vektor založený na vážených výskytech v každém dokumentu lze sestavit z obráceného indexu s každou osou ve vektoru odpovídajícím ose pro každý hledaný výraz. Pokud vypočítáte bodový součin těchto vektorů, dostanete kosinus úhlu mezi nimi. 1.0 je ekvivalentní cos (0), což by předpokládalo, že vektory zaujímají společnou čáru od počátku. Čím blíže jsou vektory k sobě, tím menší je úhel a tím blíže je kosinus 1,0.

Pokud výsledky hledání seřadíte podle kosinusu (nebo je zařadíte do prioritní fronty jako mg ano) získáte to nejrelevantnější. Chytřejší algoritmy relevance mají tendenci si pohrávat s váhami hledaných výrazů, čímž zkreslují bodový součin ve prospěch výrazů s vysokou relevancí.

Pokud se chcete trochu pohrabat, Správa gigabajtů od Bell a Moffet pojednává o vnitřní architektuře systémů pro vyhledávání textu.



  1. Python db-api:fetchone vs fetchmany vs fetchall

  2. Zdroj dat MySQL se ve Visual Studiu nezobrazuje

  3. 3 metody opětovného sestavení všech indexů pro všechny tabulky pomocí T-SQL v databázi SQL Server

  4. Problém ztráty aktualizace v souběžných transakcích