2017-05-25 1 views
0

Nous avons MariaDB, et moteur de recherche Sphinx. L'une des tables contient des données volumineuses. Et le max_doc_id actuel 849826469. Mais quelqu'un a ajouté des lignes avec des ID moins de max_doc_id. Je ne peux pas changer d'identifiant parce qu'il est utilisé dans des index étrangers, et maintenant nous avons beaucoup de données connexes.Comment ajouter manuellement une ligne à index dans Sphinx Search?

Donc, cette ligne n'ajoute pas à l'index, mais elle le devrait.

Comment puis-je le faire?

source srcmos 
{ 
    type   = mysql 
    sql_host  = 127.0.0.1 
    sql_user  = root 
    sql_pass  = 
    sql_db   = dev_db 
    sql_port  = 3306 # optional, default is 3306 
    sql_query_pre = REPLACE INTO sphinx_counter SELECT 1, MAX(id) FROM mos 

    sql_attr_uint = campaign_id 
    sql_query_range = SELECT MIN(id),MAX(id) FROM mos WHERE id <= (SELECT max_doc_id FROM sphinx_counter WHERE id=1) 
    sql_range_step = 10000 
    sql_query  = SELECT mos.id, campaign_id, body FROM mos WHERE mos.id>=$start AND mos.id<=$end 
} 
+0

Vous devez fournir des informations supplémentaires sur l'indexation Sphinx dans votre configuration. – hank

+0

@hank, après la mise à jour –

+0

Vous ne pouvez rien ajouter de manière incrémentielle à un index Sphinx ordinaire. Juste le réindexer. – hank

Répondre

0

Cela ressemble à une installation 32 bits. Aurez besoin d'une installation 64 bits. Une version avec id64 dans la version de construction

+0

J'ajoute des infos supplémentaires –