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

Sphinx hledá částečné shody klíčových slov

Jedním ze způsobů je uložit počet slov do indexu sfingy jako atribut.

sql_field_str2wordcount je dobrý způsob, jak to udělathttp://sphinxsearch.com /docs/current.html#conf-sql-field-str2wordcount

Poté jej můžete použít jako základ filtru

$cl->setMatchMode(SPH_MATCH_EXTENDED);
$cl->setRankingMode(SPH_RANK_WORDCOUNT);
$cl->setSelect("*,IF(@weight=>titles,1,0) as myfilter");
$cl->setFilter("myfilter",array(1));
$cl->Query("\"$search_key\"/1",'Title');

(Omlouvám se, nevím, jak to udělat v myšlení-sfinga, zejména. Výše ​​uvedené je syntaxe PHP API)

Upravit, zkontrolovat http://freelancing-god.github.com/ts/ cs/searching.html a http://freelancing-god.github.com/ts/ cs/common_issues.html#or_attributes

vypadá to, že by to mohlo být něco jako

with_display = "*, IF(@weight=>titles,1,0) AS display"
Title.search 'search_key/3',
  :match_mode => :extended,
  :rank_mode => :wordcount,
  :sphinx_select => with_display,
  :with          => {'display' => 1}


  1. PHP související s PDO:Aktualizace příkazu SQL neaktualizuje obsah databáze

  2. Získejte obálku, tj. překrývající se časové úseky

  3. Co je skenování bitmapové haldy v plánu dotazů?

  4. Jak SHOWPLAN_XML funguje v SQL Server