[英]How to load the xhtml document as a text and search the keyword in marklogic
[英]How to search the given text into marklogic XHTML file, like clt+f
我下面的XHTML文件使用URI(/ 54ab8c234f3c8ce1f5c30ddc)保存在marklogic中。
我需要基于字符串搜索Marklogic DB(如果它是标记名称或属性名称或XHTML中的文本)。
我只能搜索任一属性的文本。 但无法一次全部搜索。
注意:如果我传递“ SS_Default”(它是一个属性值)字符串,它将返回marklogic的URI;或者,如果我传递“ META”(它是标记名称),它将返回相应的URI;或者如果我传递“ Narrowed” “”(它是文本)应返回相应文件的URI。
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
<meta>
</meta>
<body class="Default">
</body>
</html>
提取时,可以通过在原始文档周围创建包装器来使用信封模式。
<envelope>
<original>
<html>...</html>
</original>
<plain-text>
put the plain text content of your html here
</plain-text>
</envelope>
您的文本搜索只能在纯文本元素上执行,并且在返回结果文档时,您可以返回内容元素。 但是正如Dave所说,您正在丢失有价值的信息。 在这里,您可以找到有关提取数据的方法的文档https://docs.marklogic.com/guide/ingestion
您尝试执行的搜索类型通常是彼此不同的,因为它们是不同类型的数据。 例如,如果您要搜索“元”并查找包含该元素的文档,那么您正在查询结构。 您可以在MarkLogic中使用以下查询来做到这一点:
cts:uris((), (), cts:element-query(xs:QName("meta"), ()))
当您要搜索“缩小范围”时,这只是文本,简洁明了:
cts:uris((), (), "narrowed by")
如果要在属性内搜索,通常可以通过指定要搜索的属性来完成:
cts:uris((), (), cts:attribute-value-query(xs:QName("body"), xs:QName("class"), "SS_Default"))
如果要合并这些内容,可以运行一个或查询。 我建议仔细检查您计划运行的查询类型,看看是否可以用这种方式进行细分。 正如mholstege指出的那样,您可以将文档以文本形式加载,并且能够以字符串形式搜索所有内容,但是您会在结构中损失很多价值,因此最好退一步考虑一下是否真的需要运行那些查询方式相同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.