1

SphinxSearchIndexに問題があります。私はそれから空の結果セットを取得し続けます。

source mrc
{
    type     = mysql
    sql_host = localhost
    sql_user = root
    sql_pass = 
    sql_db   = test_db
    sql_port = 3306
    mysql_connect_flags = 32

    sql_query_pre = SET NAMES latin1
    sql_query_pre = SET SESSION query_cache_type=OFF
    sql_query_pre = REPLACE INTO sphinx.indexer (idx,server,version,lastrun_at) SELECT 'mrc','localhost','2.0.4',UNIX_TIMESTAMP(NOW()) FROM DUAL
    sql_query_post = UPDATE sphinx.indexer SET fetched_by = UNIX_TIMESTAMP(NOW()) WHERE idx = 'mrc' AND server = 'localhost' AND version = '2.0.4'
    sql_query_post_index = UPDATE sphinx.indexer SET indexed_by = UNIX_TIMESTAMP(NOW()) WHERE idx = 'mrc' AND server = 'localhost' AND version = '2.0.4'

    sql_attr_uint = mrc_id
    sql_attr_uint = mrc_parent
    sql_attr_float = mrc_latitude   
    sql_attr_float = mrc_longitude  

    sql_query = \
        SELECT mrc_id AS doc_id, \
        mrc_id, \
        mrc_parent, \
        RADIANS(mrc_latitude) as mrc_latitude, \
        RADIANS(mrc_longitude) as mrc_longitude \
        FROM mrc_table \
        WHERE mrc_parent > 0

    sql_query_info = SELECT * FROM mrc_table WHERE mrc_id = $id

}

index mrc
{
    charset_type = sbcs
    docinfo = extern
    mlock = 1
    morphology = none
    source = mrc
    path = /usr/local/var/data/mrc
}

インデクサーは私に-

indexing index 'member_region_cities'...
collected 78312 docs, 0.0 MB
total 78312 docs, 0 bytes
total 0.656 sec, 0 bytes/sec, 119354.57 docs/sec

mysqlを介して検索に接続し、

SELECT * FROM mrc_table;

空を返します。

ローカルホストテーブルには間違いなくデータがあります。インデクサーが「収集された78312」と言っているところを見ることができます。

では、なぜSphinxはデータを検索に入れないのでしょうか。

乾杯

4

2 に答える 2

2

質問を再確認してください。mrcというインデックスの構成を提供しましたが、インデクサーの出力はmember_region_citiesを読み取りますが、これは単に短縮された名前だと思います。

  1. searchdが稼働している場合は、必ず--rotateオプションを指定してインデクサーを実行してください。

  2. インデックスを使用してドキュメントIDの数を確認できます

    ./indextool --dumpheader /usr/local/var/data/mrc.sph | greptotal-ドキュメント

  3. 通常はポート9306で実行されているMySQLではなく、Sphinxサーバーに接続していることを確認してください。

    mysql -h 127.0.0.1 -P 9306

お役に立てれば

于 2012-07-09T18:41:33.633 に答える
2

問題が見つかりました。フィールドを選択していませんでした。すべての列を属性として構成しました。

この行を削除してこれを修正しました-sql_attr_uint=mrc_id

後で参照できるように、フィールドのないインデックスが必要な場合は、ダミーフィールドを設定できます。たとえば、selectクエリに-'a'をダミーとして追加します。

于 2012-07-16T10:34:58.087 に答える