Опция Marklogic Smart Mastering для нестандартного совпадения при извлечении совпадения - PullRequest
0 голосов
/ 03 июня 2019

У нас есть требование, когда мы должны провести матч по EIN участника. Если точное совпадение EIN не обнаружит ни одной из сторон, мы будем сопоставлять одну из сторон, используя собственный алгоритм "расстояние Левенштейна".

При использовании Smart mastering я не вижу опцию соответствия для настройки пользовательского алгоритма, который должен оцениваться только в том случае, если нет группы с точным соответствием?

1 Ответ

0 голосов
/ 03 июня 2019

Smart Mastering по соображениям производительности требует, чтобы пользовательские алгоритмы возвращали cts: запросы и выполнялся один поиск.В идеале вы должны сбалансировать вес этих запросов так, чтобы при соблюдении правильных критериев эти веса суммировались бы за порогом, чтобы инициировать слияние.

Есть несколько вариантов, которые вы можете попробовать, и вам нужно будет решить, соответствуют ли они вашим потребностям.

1.) В записи «значения» карты (или объекта JSON, если используется JavaScript) вставлен фактический узел документа, поэтому fn: root / fn.root (http://docs.marklogic.com/fn.root))Вы можете вызвать узел, чтобы захватить корень и затем перейти к значению EIN. Затем вы можете условно добавить свой взвешенный запрос, основываясь на том, что xdmp: оценка или cts.estimate (http://docs.marklogic.com/cts.estimate) дают вам счет.

2.) У вас может быть два разных набора параметров сопоставления и слияния. Первый набор сопоставляет / объединяет в EIN, добавляя специальную коллекцию к документам без совпадений. Второй набор запускается против коллекции несоответствий впервый запуск, и он использует ваш запрос Левенштейна.

Я думаю, что первый вариант, вероятно, является наилучшим путем.

...