我想在xquery中创建一个计数器.我最初的尝试看起来如下:
let $count := 0
for $prod in $collection
let $count := $count + 1
return
<counter>{$count }</counter>
Run Code Online (Sandbox Code Playgroud)
预期结果:
<counter>1</counter>
<counter>2</counter>
<counter>3</counter>
Run Code Online (Sandbox Code Playgroud)
实际结果:
<counter>1</counter>
<counter>1</counter>
<counter>1</counter>
Run Code Online (Sandbox Code Playgroud)
该$count变量或者未能更新或处于复位状态.为什么我不能重新分配现有变量?什么是获得理想结果的更好方法?
我正在使用 curl 终端并在发出以下命令时:-
curl --anyauth --user admin:admin "https://localhost:8000/LATEST/search?q=caesar"
我低于警报:-
curl: (77) schannel: next InitializeSecurityContext failed: SEC_E_UNTRUSTED_ROOT (0x80090325) - 证书链由不受信任的机构颁发。
请建议。我已经在 Windows 中安装了 curl,还下载了 .pem 文件并将其放在同一文件夹中。
我的应用程序经常需要使用查找来修饰它所服务的文档中的值,以获取各种代码的可读形式.
例如<product_code>PC001</product_code>,希望被返回为<product_code code='PC001'>Widgets</product_code>.它并不总是product_code; 有一些不同类型的代码需要类似的行为(其中一些只有几十个例子,其中一些只有几千个.)
我想知道的是在数据库中存储数据的最有效方法是什么?我可以想到两种可能性:
1)每个代码类型一个文档,包含许多元素:
<product-codes>
<product-code code = "PC001">Widgets</product-code>
<product-code code = "PC002">Wodgets</product-code>
<product-code code = "PC003">Wudgets</product-code>
</product-codes>
Run Code Online (Sandbox Code Playgroud)
2)每个代码一个文档,每个文档包含一个<product-code>如上所述的元素.
(显然,两种选择都包括合理的指数)
这些中的任何一个明显比另一个快吗?还有另一种更好的选择吗?
我的感觉是,每个文档保留一个"东西"通常会更好,因为它在概念上稍微清晰一些(我理解)更适合ML的索引,但在这种情况下,它似乎会导致非常大量的非常小的文件.那是我应该担心的吗?
我想要一个全局变量,我可以在不同的.xqy页面中使用它.我可以在Marklogic Server中的xquery中声明这样的变量吗?
我试图理解如何最好地处理Marklogic SPARQL数据中的文字,这在任何情况下都可能.我希望能够进行不区分大小写的搜索,但我相信语义查询是不可能的.我想要一个简单的例子:
SELECT *
WHERE { ?s ?p "Red"}
Run Code Online (Sandbox Code Playgroud)
和
SELECT *
WHERE { ?s ?p "red"}
Run Code Online (Sandbox Code Playgroud)
返回所有值,无论对象是"红色","红色","红色"还是"rED".
我的数据来自另一个具有可变大写规则的来源.目前我唯一能想到的是添加一个额外的三元组,它总是包含小写的文本,所以我总是可以搜索该值.或者,使用不区分大小写的排序规则在MarkLogic中创建一些新的范围查询是否有意义(如果可以在三重数据上进行)?
在Ubuntu 14.04上安装MarkLogic 8的步骤是什么?
我正在使用Tableau和MarkLogic.我有以下XML结构
<CustomerInformation CustomerId="1">
<CustomerBasicInformation>
<CustomerTitle></CustomerTitle>
<CustomerFirstName></CustomerFirstName>
<CustomerMiddleName></CustomerMiddleName>
<CustomerLastName></CustomerLastName>
</CustomerBasicInformation>
<CustomerEmplyomentDetails>
<CustomerEmployer>
<EmployerName IsCurrentEmployer=""></EmployerName>
<CustomerDesignation></CustomerDesignation>
<EmployerLocation></EmployerLocation>
<CustomerTenure></CustomerTenure>
</CustomerEmployer>
<CustomerEmplyomentDetails>
<PolcyDetails>
<Policy PolicyId="">
<PolicyName></PolicyName>
<PolicyType></PolicyType>
<PolicyCategory></PolicyCategory>
<QuoteNumber></QuoteNumber>
<PolicyClaimDetails>
<PolicyClaim ClaimId="">
<PolicyClaimedOn></PolicyClaimedOn>
<PolicyClaimType></PolicyClaimType>
<PolicyClaimantName></PolicyClaimantName>
</PolicyClaim>
</PolicyClaimDetails>
<PolicyComplaintDetails>
<PolicyComplaint ComplaintId="">
<PolicyComplaintStatus></PolicyComplaintStatus>
<PolicyComplaintOn></PolicyComplaintOn>
</PolicyComplaint>
</PolicyComplaintDetails>
<BillingDetails>
<Billing BillingId="">
<BillingAmount></BillingAmount>
<BillingMode></BillingMode>
</Billing>
</BillingDetails>
</Policy>
<Policy PolicyId="">
<PolicyName></PolicyName>
<PolicyType></PolicyType>
<PolicyCategory></PolicyCategory>
<QuoteNumber></QuoteNumber>
<PolicyClaimDetails>
<PolicyClaim ClaimId="">
<PolicyClaimedOn></PolicyClaimedOn>
<PolicyClaimType></PolicyClaimType>
<PolicyClaimantName></PolicyClaimantName>
</PolicyClaim>
</PolicyClaimDetails>
<PolicyComplaintDetails>
<PolicyComplaint ComplaintId="">
<PolicyComplaintStatus></PolicyComplaintStatus>
<PolicyComplaintOn></PolicyComplaintOn>
</PolicyComplaint>
</PolicyComplaintDetails>
<BillingDetails>
<Billing BillingId="">
<BillingAmount></BillingAmount>
<BillingMode></BillingMode>
</Billing>
</BillingDetails>
</Policy>
</PolcyDetails>
</CustomerInformation>
Run Code Online (Sandbox Code Playgroud)
我已经在上面的结构上创建了一个视图.最初我为所有元素创建了一个视图,但在Tableau上我得到了重复值以及笛卡尔连接结果.所以为了解决这个问题,我使用了片段根的方法.由于单个客户可以有多个PolicyDetails.我在Policy上创建了片段根目录.类似声明,投诉,计费,报价对于单个策略可以是多个,我已经在每个策略上创建了片段根. …
当我尝试运行我的项目时,我在标题中发现了错误。我已经阅读了有关此错误的其他线程,并找到了消除错误的解决方案,但杀死了我的所有日志记录。
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
Run Code Online (Sandbox Code Playgroud)
和
<exclusions>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
</exclusions>
Run Code Online (Sandbox Code Playgroud)
两者都有助于消除错误并终止我的日志记录。我宁愿能够保留我的 Spring-Boot 日志记录并解决此问题,但一直无法找到解决方案。有没有办法可以保留当前的日志记录并解决此依赖性问题?追踪违规模块的最佳方法是什么?
完整的错误是:
线程“main”中的异常 java.lang.IllegalArgumentException: LoggerFactory 不是 Logback LoggerContext 但 Logback 在类路径上。删除 Logback 或竞争实现(类 org.slf4j.impl.Log4jLoggerFactory 从文件加载:/C:/Users/me/.m2/repository/org/slf4j/slf4j-log4j12/1.6.4/slf4j-log4j12-1.6 .4.jar)。如果您使用的是 WebLogic,则需要在 WEB-INF/weblogic.xml 中的首选应用程序包中添加“org.slf4j”:org.slf4j.impl.Log4jLoggerFactory
编辑:pom:
<dependencies>
<dependency>
<groupId>com.marklogic</groupId>
<artifactId>mlcp</artifactId>
<version>8.0-4</version>
</dependency>
<dependency>
<groupId>org.apache.avro</groupId>
<artifactId>avro</artifactId>
<version>1.7.4</version>
</dependency>
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
<version>1.6</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>commons-modeler</groupId>
<artifactId>commons-modeler</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId> …Run Code Online (Sandbox Code Playgroud) 我们有一个相当简单的XQuery和Groovy代码如下.Xquery代码:
declare variable $criteria as element(criteria) external ;
<scopedInterventions>{
$criteria/equals/field
}</scopedInterventions>
Run Code Online (Sandbox Code Playgroud)
这是试图调用它的测试代码
def uri = new URI("xcc://admin:admin@localhost:8001")
def contentSource = ContentSourceFactory.newContentSource(uri)
def request = session.newModuleInvoke("ourQuery.xqy")
def criteria =
"""<criteria>
<equals>
<field>status</field>
<value>draft</value>
</equals>
</criteria>
"""
request.setNewVariable("criteria",ValueType.ELEMENT, criteria);
session.submitRequest(request).asString()
}
Run Code Online (Sandbox Code Playgroud)
我们在执行时遇到此错误:
引起:com.marklogic.xcc.exceptions.XQueryException:XDMP-LEXVAL:xs:QName("element()") - 无效的词汇值"element()"[Session:user = admin,cb = {default} [ ContentSource:user = admin,cb = {none} [provider:address = localhost/127.0.0.1:9001,pool = 1/64]] [客户端:XCC/5.0-3,服务器:XDBC/5.0-3] expr :xs:QName("element()")位于com.marklogic.xcc.impl.handlers.ServerExceptionHandler.handleResponse(ServerExceptionHandler.java:34)的com.marklogic.xcc.impl.handlers.EvalRequestController.serverDialog(EvalRequestController.java) :83)com.marklogic.xcc.impl.handlers.AbstractRequestController.runRequest(AbstractRequestController.java:84)at com.marklogic.xcc.impl.SessionImpl.submitRequestInternal(SessionImpl.java:373)at com.marklogic.xcc. impl.SessionImpl.submitRequest(SessionImpl.java:356)com.zynx.galen.dataaccess.MarkLogicUtilities.executeQueryWithMultipleXMLParameters(MarkLogicUtilities.groovy:52)at com.zynx.galen.repositories.ScopedInterventionService.getScopedInterventionsByCriteria(ScopedInterventionService.groovy:20)... 1 more
任何帮助都会受到高度赞赏.
我们正在寻找一个测试我们的MarkLogic XQuery代码的框架.
我们可以看到MarkLogic/XQunit是一个很好的框架,但它没有代码覆盖功能.
为MarkLogic XQuery编写单元测试用例的最佳框架是什么?
marklogic ×10
xquery ×4
curl ×1
install ×1
java ×1
marklogic-8 ×1
rdf ×1
sparql ×1
spring ×1
spring-boot ×1
ssl ×1
tableau-api ×1
ubuntu ×1
unit-testing ×1
xml ×1