我想将MS Office word/excel文档加载到Marklogic中,并希望使用xquery查询它们,就像使用xml文档一样.但是当我将doc文件加载到Marklogic时,它会将它们加载为二进制格式,并在使用查询控制台查看时显示垃圾字符.我尝试使用以下命令加载: -
xdmp:document-load("E:\doc\sample.doc",
<options xmlns="xdmp:document-load"
xmlns:http="xdmp:http">
<format>xml</format>
</options>)
Run Code Online (Sandbox Code Playgroud)
但它显示一个错误,说文件不是UTF 8编码.我想知道是否可以将doc和xls文件加载到Marklogic中,或者在加载它们之前必须将它们转换为xml或UTF 8编码格式.如果是,那么转换它们的过程是什么.如果不是,那么我们如何使用xquery查询它们.我还想知道转换过程是否需要安装MS Office 2007/2010,因为Office 2007和2010都支持OOXML格式.
请给我适当的指导.
我想cts:or-query在for循环中创建一个.我怎样才能做到这一点?
我的逻辑的一个例子:
let $query := for $tag in (1,2,3,4,5)
return myquery
Run Code Online (Sandbox Code Playgroud)
我想得到最终的查询,例如:
let $query := cts:or-query(
(
cts:element-query(xs:QName("ts:tag"),'1'),
cts:element-query(xs:QName("ts:tag"),'2'),
cts:element-query(xs:QName("ts:tag"),'3'),
cts:element-query(xs:QName("ts:tag"),'4'),
cts:element-query(xs:QName("ts:tag"),'5')
)
)
Run Code Online (Sandbox Code Playgroud) 给出以下xml文件,知道结构和内容可以更改:
<something>
<parent>
<child>Bird is the word 1.</child>
<child>Curd is the word 2.</child>
<child>Nerd is the word 3.</child>
</parent>
<parent>
<child>Bird is the word 4.</child>
<child>Word is the word 5.</child>
<child>Bird is the word 6.</child>
</parent>
</something>
Run Code Online (Sandbox Code Playgroud)
我想用一种方法来使用xquery(甚至xslt)来替换所提供的字符串的所有实例.例如,将"Bird"替换为"Dog".因此结果将是:
<something>
<parent>
<child>Dog is the word 1.</child>
<child>Curd is the word 2.</child>
<child>Nerd is the word 3.</child>
</parent>
<parent>
<child>Dog is the word 4.</child>
<child>Word is the word 5.</child>
<child>Dog is the word 6.</child>
</parent>
</something>
Run Code Online (Sandbox Code Playgroud)
我不知道这是否可能.我所做的每一次尝试都消除了标签.我甚至尝试了这个例子(http://geekswithblogs.net/Erik/archive/2008/04/01/120915.aspx),但是文本不是整个文档.
请帮忙!
UPDATE
我尝试使用xslt …
我有简单的任务要做但无法为此找到确切的解决方案.我在MarkLogic中将文件保存为abc.xml.如何使用XQuery将文件重命名为example.xml?
我试过的代码:
xquery version "1.0-ml";
xdmp:document-rename ("/aaa.xml","/final.xml");
Run Code Online (Sandbox Code Playgroud)
这显示错误.
尝试使用以下模式过滤MarkLogic中的sparql结果时,
SELECT ...
WHERE
{
...
FILTER ( EXISTS { ?parent <http://www.w3.org/2004/02/skos/core#broader>+ ?root } )
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
[1.0-ml] XDMP-UNEXPECTED: (err:XPST0003) Unexpected token syntax error, unexpected {, expecting (
Stack Trace
At line 17 column 19:
In xxxx
17. FILTER ( EXISTS { ?parent <http://www.w3.org/2004/02/skos/core#broader>+ ?root } )
Run Code Online (Sandbox Code Playgroud)
MarkLogic不支持Sparql 1.1语法或我的查询不正确吗?
我也尝试了以下内容:
FILTER EXISTS { ?parent <http://www.w3.org/2004/02/skos/core#broader>+ ?root }
Run Code Online (Sandbox Code Playgroud)
并且错误消息是:
[1.0-ml] XDMP-UNEXPECTED: (err:XPST0003) Unexpected token syntax error, unexpected {, expecting (
Run Code Online (Sandbox Code Playgroud) 我有一些xml文档,其结构如下:
<root>
<intro>...</intro>
...
<body>
<p>..................
some text CO<sub>2</sub>
.................. </p>
</body>
</root>
Run Code Online (Sandbox Code Playgroud)
现在我想用CO2短语搜索所有结果,并希望在搜索结果中获得上述类型的结果.为此,我使用此查询 -
cts:search
(fn:collection ("urn:iddn:collections:searchable"),
cts:element-query
(
fn:QName("http://iddn.icis.com/ns/fields","body"),
cts:word-query
(
"CO2",
("case-insensitive","diacritic-sensitive","punctuation-insensitive",
"whitespace-sensitive","unstemmed","unwildcarded","lang=en"),
1
)
)
,
("unfiltered", "score-logtfidf"),
0.0)
Run Code Online (Sandbox Code Playgroud)
但是使用这个我无法获得文档CO<sub>2</sub>.我只用简单的短语获取数据CO2.
如果我替换搜索短语,CO 2那么我只能使用CO<sub>2</sub>而不是使用CO2
我想获得两者的组合数据CO<sub>2</sub>和CO2搜索结果.
我可以<sub>通过任何方式忽略,还是有其他方法来解决这个问题?
让我们说我们有json的样子
{
"name":"abc",
"lastName":"xyz",
"description":"aaaaa aaaa",
"dob":11-10-1988,
"workInformation":[
{
"address":"kolkata",
"workFor":"vvv Pvt Ltd",
"reference" : [
{
"refName" : "ttt",
"refId" : "12345"
},
{
"refName" : "sss",
"refId" : "23412"
}
]
},
{
"address":"bangalore",
"workFor":"www Pvt Ltd",
"reference" : [
{
"refName" : "rrr",
"refId" : "43434"
},
{
"refName" : "yyyy",
"refId" : "34213"
}
]
},
{
"address":"delhi",
"workFor":"sss Pvt Ltd",
"reference" : [
{
"refName" : "qqqq",
"refId" : "76767"
},
{
"refName" : "gggg", …Run Code Online (Sandbox Code Playgroud) 您能否提供查询以启用收集词典.
我使用过这种编码,但我遇到了同样的问题.
xquery版本"1.0-ml";
import module namespace admin = "http://marklogic.com/xdmp/admin"
at "/MarkLogic/admin.xqy";
let $config := admin:get-configuration()
return
admin:database-set-collection-lexicon($config,
xdmp:database("myDatabase"), fn:true())
Run Code Online (Sandbox Code Playgroud)
谢谢!
这是我的REST调用:
curl -s --anyauth -u admin:pass -X GET -i http://myhost:8002/manage/v2/databases/MyDB/properties
Run Code Online (Sandbox Code Playgroud)
我想从这里得到一个森林列表而不是所有的属性.就像是:
MyDB001
MyDB002
MyDB003
etc.
Run Code Online (Sandbox Code Playgroud)
这可能吗?
我的XML中有以下元素:
<series id="iot" type="main">Institute of Theology</series>
Run Code Online (Sandbox Code Playgroud)
我想要做的是@id尽可能以最具性能意识的方式获取数据库中的所有系列值以及匹配值.我已经设置了元素范围索引,<series/>并且还设置了属性范围索引@id.我已经尝试使用cts:element-values()哪个很好地获取系列元素值,但我无法弄清楚如何返回元素和匹配的id值.
我正在寻找的最终结果应该是这样的:
iot Institute of Theology
Run Code Online (Sandbox Code Playgroud)