MarkLogic: применить запрос «И» к коллекциям, используя файл опций - PullRequest
0 голосов
/ 25 марта 2019

Мы включили битемпораль в коллекциях клиентов и счетов, и у нас есть клиент «123456» в последней коллекции как клиентов, так и счетов.Мы пытаемся использовать файл опций, чтобы извлечь последний документ клиента из коллекции 'customer'.

Ниже приведен кодированный файл опций.

{
"options": 
  {
  "search-option": "unfiltered",
  "additional-query":[
          "<collection-query xmlns='http://marklogic.com/cts'>
          <uri>customer</uri>
          </collection-query>"
          ],
  "additional-query":[
          "<collection-query xmlns='http://marklogic.com/cts'>
          <uri>latest</uri>
          </collection-query>"
          ],
  "constraint": [
          { 
          "name": "CustomerId",
          "range": 
                         {
          "type": "xs:string",
          "collation" : "http://marklogic.com/collation/codepoint",
          "element": {"name": "CustomerId" }
                         }
          }
          ],
"extract-document-data": 
          {
          "selected": "exclude",
          "extract-path": [ "/envelope/instance/Customer" ]
          }
  }
}

Когда мы попробуем нижекод, документы по-прежнему поступают как из клиентских, так и из платежных коллекций.

fn.head(search.search('CustomerId:123456', 
SearchOptions.firstChild)).xpath('search:result/search:extracted/data()', 
{'search': 'http://marklogic.com/appservices/search'});

SearchOptions в запросе выше - это файл опций.

Мы понимаем, что «дополнительный запрос» будет применять условие И, но похоже, что в нашем понимании есть некоторый пробел.

Как я могу применить условие И в файле опций, чтобы получить ПОСЛЕДНИЕдокумент только из коллекции «клиента».

Заранее спасибо!

1 Ответ

1 голос
/ 25 марта 2019

Вы можете использовать:

"additional-query":[
      "<collection-query xmlns='http://marklogic.com/cts'>
      <uri>customer</uri>
      </collection-query>",

      "<collection-query xmlns='http://marklogic.com/cts'>
      <uri>latest</uri>
      </collection-query>"
      ],

По умолчанию они заключены в запрос и запрос (на верхнем уровне).

HTH!

...