2015-11-27 3 views
0

У меня есть документы, идентификаторы которых генерируются случайным образом. Здесь я должен найти дубликаты среди этих документов. У меня есть три поля, которые не должны быть одинаковыми для двух документов. Итак, как проверить дубликаты на основе нескольких полей?Поиск дубликатов документов

Образцы документов

document 1 = { 
"process" : "business", 
"processId" : 5433321, 
"country" : "US" 
} 

document 2 = { 
"process" : "operations", 
"processId" : 334233, 
"country" : "UK" 
} 

document 3 = { 
"process" : "business", 
"processId" : 5433321, 
"country" : "US" 
} 

Вот как вы можете видеть, документ 1 и документ 3 являются одинаковыми, но они имеют разные идентификаторы в моей базе данных, поэтому существуют в виде отдельных документов. Поэтому при запуске мне нужно найти выше, как дубликаты, и, если возможно, сохранить только один.

+0

Можете ли вы показать образец документа с теми полями, о которых вы говорите? – Val

ответ

0

Лучшим вариантом здесь будет модель вашего документа по документу doc ID. Теперь для каждого уникального документа создайте docID, который является хешем содержимого документа. Это гарантирует, что только один уникальный документ существует в индексе. Затем используйте _create API для создания документов. Это приведет к сбою всех запросов на документ с надписью с тем же идентификатором документа.

Подробнее о других проблемах дублирования и их решениях можно узнать дополнительно here.

Смежные вопросы