2016-04-27 13 views
0

Ich benutze Sphinx Suche mit Dokumententabelle. Ich möchte alle Felder holen, aber es gibt mir nicht alle Felder zurück. Bitte überprüfen Sie meine Konfigurationsdatei und lassen Sie mich wissen, wo Sie Änderungen vornehmen können? Testindexsphinxsearch gibt mir keine Inhalt und Titelfelder

Tabelle: Dokumente

Felder: id, group_id, group_id2, DATE_ADDED, Inhalt, Titel

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 
{ 
} 

Antwort

1

Nr Sphinx nicht 'Store' Felder. Sie können nicht zurückgegeben werden.

Sphinx 'indiziert die Felder, aber im internen Inverse-Index-Format.

... um Daten aus sphinx wieder zu entfernen - verwenden Sie Attribute. In Ihrem Beispiel-Index haben Sie group_id und date_added als Attribute über die sql_attr_* Direktiven gemacht.

sql_field_string könnte nützlich sein, da es eine Spalte BEIDE ein Feld, und ein Zeichenfolgenattribut macht.