繁体   English   中英

如何将给定文本搜索到marklogic XHTML文件中,例如clt + f

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM