Хобрук: Ваш путь к мастерству в программировании

Поиск сегментов и динамические запросы

МаркЛогик 9.0.8.2

В базе у нас есть такие данные

<xmldata>
     <data>
         <name>name1</name>
         <value>E012M9876</value>
    <data>
    <data>
         <name>name2<name>
         <value>E015M6789</value>
    </data>
     <data>
         <name>name3</name>
         <value>E012M9876</value>
    <data>
    <data>
         <name>name1<name>
         <value>E015M6789</value>
    </data>
</xmldata>

Пользователь может искать любой оператор, такой как =, ‹, ‹=, ›=, Между и данные являются динамическими, поэтому мы не можем создавать фиксированные сегменты, запросы могут быть такими

  • name1:›=E011M1234 AND name1:‹=E015M8921 (вернет 2 записи)
  • name1:›E014M8769 (вернет 1 запись)
  • name1:‹=E013M7659 (вернет 1 запись)
  • name2:=E015M6789 (вернет 1 запись)

Я просмотрел все, чтобы найти реализацию динамического сегмента в xQuery, но ничего не нашел. https://docs.marklogic.com/guide/rest-dev/search#id_69918

Итак, не могли бы вы помочь, как написать код для реализации этого сценария?

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

<data>
    <value name="name1">E015M6789</value>
</data>

  • Вы пытаетесь понять, как построить вычисляемый сегмент docs.marklogic.com/ guide/search-dev/appendixa#id_91755 или не можете понять, как применить его в параметрах поиска docs.marklogic.com/guide/search-dev/search-api#id_22725? 18.07.2020
  • Спасибо Мэдс Хансен за ваш ответ. Извините за поздний ответ, в этом случае все зависит от того, какой пользователь помещает данные, поэтому мы не можем получить фиксированные значения для ведра, поэтому мы хотим, чтобы он работал так, как мы помещаем данные в ограничения с помощью диапазон вариантов, так что это лучший способ справиться с этим? 30.07.2020
  • А не вариант сделать элементы с названием? то есть <name1>E015M6789</name> и <name2>E015M6789</name2>? Даже если вы хотите сохранить исходные данные, вы можете реализовать шаблон конверта marklogic.com /блог/конверт-дизайн-шаблон 30.07.2020

Ответы:


1

Один из способов решить эту проблему — создать TDE, который индексирует одну строку для каждого элемента данных с одним столбцом для каждого имени и значения.

Затем запрос SQL или Optic может сопоставить соответствующие строки на основе логических выражений в столбце значений.

Надеясь, что это поможет,

20.07.2020
Новые материалы

Аргументы прогрессивного улучшения почти всегда упускают суть
В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

Введение в Джанго Фреймворк
Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..

Настольный ПК как «одно кольцо, чтобы править всеми» домашних компьютеров
Вид после 9 месяцев использования С настольных компьютеров все началось, но в какой-то момент они стали «серверами», и мы все перешли на ноутбуки. В прошлом году я столкнулся с идеей настольных..

Расширенные методы безопасности для VueJS: реализация аутентификации без пароля
Руководство, которое поможет вам создавать безопасные приложения в долгосрочной перспективе Безопасность приложений часто упускается из виду в процессе разработки, потому что основная..

стройный-i18следующий
Представляем стройную оболочку для i18next. Эта библиотека, основанная на i18next, заключает экземпляр i18next в хранилище svelte и отслеживает события i18next, такие как languageChanged,..

Обзор 20 основных и современных методов работы с массивами в JavaScript
Вы знаете их всех? В этом коротком посте я покажу сводку методов, доступных в JavaScript для работы с массивами. Я надеюсь, что вы найдете это полезным! В конце поста вы найдете ссылку на..

Да, но я чувствую необходимость указать, что это или не единственные два.
Да, но я чувствую необходимость указать, что это или не единственные два. Обучение с подкреплением (в качестве примера) также является важным.