2009-05-05 5 views
5

Dans mon application, j'ai besoin de chaque nouvel enregistrement à ajouter à l'index instantanément (pas après rake ts: index). Si je comprends bien, l'indexation delta est ce que je cherche. Donc, j'ai ajouté colonne à chaque table que j'indexe avec Sphinx, définissez la valeur par défaut à false et ajouté set_property :delta => true à chaque define_index bloc; alors couru rake ts: index et rake ts: redémarre. Cependant, l'indexation "instantanée" ne semble pas fonctionner. Lors d'un test en console, je crée un nouvel enregistrement, je le sauvegarde et j'essaie de le rechercher mais je ne le récupèrerai pas (après avoir exécuté rake ts: index cela fonctionne très bien). Est-ce que je fais quelque chose de mal ici?Penser Sphinx - Delta indexation ne fonctionne pas

Répondre

6

merci pour vos efforts. Après une exploration assez longue, j'ai découvert que j'avais juste oublié d'exécuter la migration (qui définissait la valeur par défaut des colonnes delta sur false). Maintenant, je devrais obtenir quelques points négatifs pour une erreur aussi stupide. Désolé de vous déranger et merci encore une fois.

+4

Aucun moyen sur les points négatifs. Quelqu'un d'autre va faire la même erreur et maintenant ils peuvent google et trouver la solution. Votre douleur est le gain de quelqu'un d'autre. – srboisvert

+1

Sans blague! Trois ans plus tard, j'arrive et j'ai la même question. – Samo

+0

sérieusement merci :) – rdsoze

0

Quelle version de Rails utilisez-vous? Y a-t-il une sortie lorsque vous créez un nouvel enregistrement dans le script/la console? Utilisez-vous rake ts: conf après pour générer correctement le fichier de configuration?

0

Vous pouvez vérifier ensuite le fichier de configuration généré pour voir s'il y a deux requêtes SQL (le standard et le delta) dans le fichier de configuration.

Nous l'utilisons sans problème.

2

J'ai un problème similaire avec l'indexation delta ne fonctionne pas ... en fait cela fonctionne dans mon environnement de développement mais pas de production. Je suis confus par les déclarations au début de la poste qui indiquent que la valeur par défaut pour delta devrait être faux. Dans la pensée doc à sphynx http://freelancing-god.github.com/ts/en/deltas.html il indique la valeur par défaut doit être vrai:

def self.up 
    add_column :articles, :delta, :boolean, :default => true, 
    :null => false 
end 

Suis-je manque quelque chose?

Merci!

+0

même doute pour moi aussi – pahnin