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

auto_incrementIDを使用しないSphinx

    もちろん、回避するのは簡単です。 Sphinx専用に独自のIDを作成する必要があり、それらを衝突させたくない場合は、sphinx.conf(MySQLのサンプルコード)でこのようなことを行うことができます

    source products {
    
      # Use a variable to store a throwaway ID value
      sql_query_pre = SELECT @id := 0 
    
      # Keep incrementing the throwaway ID.
      # "code" is present twice because Sphinx does not full-text index attributes
      sql_query = SELECT @id := @id + 1, code AS code_attr, code, description FROM products
    
      # Return the code so that your app will know which records were matched
      # this will only work in Sphinx 0.9.10 and higher!
      sql_attr_string = code_attr  
    }
    

    唯一の問題は、検索で一致したレコードを知る方法がまだ必要なことです。 Sphinxは、ID(現在は意味がありません)に加えて、「属性」としてマークした列を返します。

    Sphinx 0.9.10以降では、文字列属性がサポートされているため、検索結果の一部として製品コードを返すことができます。

    0.9.10はまだ公式リリースではありませんが、見栄えがします。 ZawodnyがCraig'sListで実行しているようです だから私はこの機能に頼ることについてあまり緊張しません。



    1. ハイブリッドクラウドPostgreSQLの導入のヒント

    2. クエリを続編して、日付範囲の間にあるすべてのレコードを検索します

    3. mysqlの既存の列名で2つの列を1つに連結する方法は?

    4. SQLiteデータベースのリークが見つかりました