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
}
Vous devez fournir des informations supplémentaires sur l'indexation Sphinx dans votre configuration. – hank
@hank, après la mise à jour –
Vous ne pouvez rien ajouter de manière incrémentielle à un index Sphinx ordinaire. Juste le réindexer. – hank