sql >> データベース >  >> RDS >> Mysql

部分的なキーワード一致のスフィンクス検索

    1つの方法は、単語数を属性としてスフィンクスインデックスに格納することです。

    sql_field_str2wordcountは、これを行うための良い方法です http://sphinxsearch.com /docs/current.html#conf-sql-field-str2wordcount

    その後、フィルターの基礎として使用できます

    $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');
    

    (申し訳ありませんが、思考でこれを行う方法がわかりません-特にsphinx。上記はPHP API構文です)

    http://freelancing-god.github.com/ts/を確認して、編集しますen / searching.html および http://freelancing-god.github.com/ts/ en / common_issues.html#or_attributes

    のようなもののように見えます
    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. ブラックホールエンジンのクリエイティブな用途

    2. MySQLで日数を減算する方法

    3. Oracle PL / SQL:DBMS_SCHEDULER.CREATE_JOBの例

    4. MySQLで日付で注文する方法