2011-12-28 2 views
2

Je suis nouveau à SOLR et je faisais des recherches sur cette technologie. J'ai maintenant une question concernant la fonction delta-import donc j'ai regardé SO et trouvé ceci: Solr DataImportHandler delta import. Dans la réponse, il y a un champ [date_update] mentionné qui semble être un horodatage de l'enregistrement.Numéro d'horodatage delta-import SOLR

Ma question est: Est-ce que [date_update] est un horodatage stocké dans la table lors de la création de l'enregistrement? Si oui, cela ne peut-il pas créer de problèmes si la date du serveur de base de données n'est pas exactement synchronisée avec le serveur sur lequel SOLR est installé? Cela pourrait exclure certains enregistrements si l'heure du serveur Solr est antérieure à SQLServer.

Répondre

1

Cette solution peut laisser des traces (si les serveurs ne sont pas configurés correctement). J'utilise une solution similaire mais avec quelques modifications. Les éléments de la base de données ont un champ d'horodatage mis à jour lorsque l'élément change de quelque façon que ce soit.

Avant de mettre à jour l'index je reçois la dernière timestamp à partir Solr (ce champ est stocké), alors je passe cet horodatage dans la requête index Solr (/? = Commande import complet & propre = false & timestamp =. ..).

Using query attribute for both full and delta import

que le temps de façon sur la machine Solr ont rien à voir avec le temps sur la machine DB. Cependant, dans mon cas, une fois l'indexation terminée, j'effectue une vérification rapide avec la base de données (la vérification est quelque chose qui manque pour une raison quelconque, ou quelque chose doit être effacé).

Vous pouvez également utiliser ce type de vérification lorsque vous utilisez dataimporter.last_index_time.

+0

nouvelle année heureuse et merci pour votre réponse. Dans la réponse ci-dessus, je pense que le problème existe toujours puisque l'horodatage Solr "horodatage de Solr (ce champ est stocké)" est toujours comparé à l'horodatage de la table DB non? Je pense que c'est juste le processus que vous avez mentionné par la suite qui vérifie que tout est importé. Avez-vous déjà rencontré des cas où certaines données n'ont pas été importées? – mrd3650

+0

Oui, cet horodatage est comparé à l'horodatage dans la base de données, mais il est également indexé à partir de la base de données, par conséquent le temps sur la machine de Solr n'est pas important (non utilisé). – Fuxi

+0

Merci pour votre réponse. Cependant, je ne comprends toujours pas correctement. Ce qui me dérange est cette phrase: "Avant la mise à jour de l'index, je reçois le dernier horodatage de Solr (ce champ est stocké) _ ** est-ce dataimporter.last_index_time? ** _, alors je passe cet horodatage dans la requête d'index à Solr (/?command=full-import&clean=false×tamp=...)._ ". En outre, je suppose que l'horodatage de Solr est alors passé en tant que paramètre dans la requête d'importation non? – mrd3650

Questions connexes