manuel Sphinx says que la fusion d'index devrait conserver les anciens mots-clés ainsi que des nouvelles:Sphinx: que fait exactement indexer --merge?
Notez, cependant, que les mots clés « anciens » ne seront pas supprimés automatiquement dans de tels cas. Par exemple, s'il y a un mot-clé "ancien" associé au document 123 dans DSTINDEX, et un mot-clé "nouveau" associé dans SRCINDEX, le document 123 sera trouvé par les deux mots-clés après la fusion.
Je ne peux pas reproduire cela.
- Nous avons un document avec id 1 et le texte 'un' dans l'index
main
- texte dans les changements de table DB de 'un' à 'deux'
indexer --rotate delta
indexer --rotate --merge main delta
- Wait pour
searchd
pour recharger l'index - Maintenant, nous pouvons trouver document 1 par
SELECT id FROM main WHERE match('two')
, maismatch('one')
ne trouve rien.
Sources pour les deux indices sont définis essentiellement comme:
sql_query = SELECT id, text FROM tbl
J'ai aussi essayé de spécifier des mots clés via sql_joined_field
et fusion ne garde pas vieux mots-clés de trop.
Cela signifie-t-il que le manuel est erroné? Est-il prudent de supposer que si SRCINDEX a des informations pour un ID (attributs et mots-clés de texte), le processus de fusion va rejeter tout ce que DSTINDEX avait pour cet ID et le remplacer par de nouvelles informations?
Super! C'est exactement ce que j'espérais. Merci beaucoup! –