2016-04-27 1 views
0

私はドキュメントテーブルでスフィンクス検索を使用しています。私はすべてのフィールドを取得したいが、すべてのフィールドを返すわけではありません。私の設定ファイルをチェックして、変更する場所を教えてください。テストインデックスsphinxsearchが私のコンテンツとタイトルフィールドを返さない

テーブルを使用して:ドキュメント

フィールド:ID、GROUP_ID、group_id2、DATE_ADDED、コンテンツ、タイトル

mysql> select * from test1 where match ('my document'); 
    +------+----------+------------+ 
    | id | group_id | date_added | 
    +------+----------+------------+ 
    | 1 |  1 | 1461672351 | 
    | 2 |  1 | 1461672351 | 
    +------+----------+------------+ 
2 rows in set (0.00 sec) 

mysql> 

source src1 
{ 
    type   = mysql 
    sql_host  = localhost 
    sql_user  = root 
    sql_pass  = [email protected] 
    sql_db   = test 
    sql_port  = 3306 

    sql_query  = \ 
     SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content \ 
     FROM documents 



    sql_attr_uint  = group_id 

    sql_attr_timestamp = date_added 
    sql_ranged_throttle = 0 
    sql_query_info  = SELECT * FROM documents WHERE id=$id 

} 

source src1throttled : src1 
{ 
    sql_ranged_throttle = 100 
} 
index test1 
{ 
    source   = src1 
    path   = /var/lib/sphinxsearch/data/test1 
    docinfo   = extern 
    dict   = keywords 
    mlock   = 0 
    morphology  = none 
    min_word_len = 1 
    html_strip  = 0 
} 
index test1stemmed : test1 
{ 
    path   = /var/lib/sphinxsearch/data/test1stemmed 
    morphology  = stem_en 
} 
index dist1 
{ 
    type   = distributed 
    local   = test1 
    local   = test1stemmed 
    agent   = localhost:9313:remote1 
    agent   = localhost:9314:remote2,remote3 
    agent_connect_timeout = 1000 
    agent_query_timeout  = 3000 
} 
index rt 
{ 
    type   = rt 
    path   = /var/lib/sphinxsearch/data/rt 
    rt_field  = title 
    rt_field  = content 
    rt_attr_uint  = gid 
} 
indexer 
{ 
    mem_limit  = 128M 
} 

searchd 
{ 
    listen   = 9312 
    listen   = 9306:mysql41 
    log   = /var/log/sphinxsearch/searchd.log 
    query_log  = /var/log/sphinxsearch/query.log 
    read_timeout  = 5 
    client_timeout  = 300 
    max_children  = 30 
    persistent_connections_limit = 30 
    pid_file  = /var/run/sphinxsearch/searchd.pid 
    seamless_rotate  = 1 
    preopen_indexes  = 1 
    unlink_old  = 1 
    mva_updates_pool = 1M 
    max_packet_size  = 8M 
    max_filters  = 256 
    max_filter_values = 4096 
    max_batch_queries = 32 
    workers   = threads # for RT to work 
} 
common 
{ 
} 

答えて

1

番号スフィンクスはない '店舗' フィールドを行います。彼らは返すことはできません。

スフィンクスはフィールドを「インデックス付け」しますが、内部の逆インデックス形式です。

...スフィンクスからデータを取り戻すには - 属性を使用してください。あなたの例のインデックスでは、sql_attr_*ディレクティブを使ってgroup_iddate_addedを属性として作成しました。

sql_field_stringは、フィールドBOTHの列と文字列属性を作成するので便利です。

関連する問題