gpt4 book ai didi

json - 如何使用 MarkLogic 服务器指定基于 JSON 数组的数据库字段配置?

转载 作者:行者123 更新时间:2023-12-04 23:53:59 25 4
gpt4 key购买 nike

使用 MarkLogic 服务器(版本 8),我试图定义一个字段配置(建议),它应该使用 JSON 数组(描述)的内容/值,数据库字段配置的定义如下:

        <fields>
<field>
<field-name>suggest</field-name>
<include-root>false</include-root>
<stemmed-searches>advanced</stemmed-searches>
<word-searches>true</word-searches>
<field-value-searches>true</field-value-searches>
<field-value-positions>true</field-value-positions>
<trailing-wildcard-searches>true</trailing-wildcard-searches>
<trailing-wildcard-word-positions>true</trailing-wildcard-word-positions>
<three-character-searches>true</three-character-searches>
<three-character-word-positions>true</three-character-word-positions>
<word-lexicons>
<word-lexicon>http://marklogic.com/collation/</word-lexicon>
</word-lexicons>
<included-elements>
<included-element>
<namespace-uri/>
<localname>descriptions</localname>
<weight>1.0</weight>
<attribute-namespace-uri/>
<attribute-localname/>
<attribute-value/>
</included-element>
</included-elements>
<excluded-elements/>
<tokenizer-overrides/>
</field>
</fields>

以及示例文档实例:

{
"descriptions": ["lorem", "ipsum"]
}

不幸的是,内容似乎没有被索引,因此没有返回建议查询的结果。请告知您必须如何定义配置以索引 JSON 数组值。

我阅读了文档中的以下部分,但找不到关于此特定主题的信息:

最佳答案

尝试 adding a field range index在那个领域。

字段本身已经被索引,但仅作为单词和值查询的哈希索引。 For search suggestions you want a range index ,它存储值列表而不是哈希值。这有时被称为值(value)词典。

例如,我将您的suggest 字段和suggest 上的字段范围索引添加为字符串,并使用unicode 代码点排序规则。配置 XML 如下所示:

<range-field-indexes>
<range-field-index>
<scalar-type>string</scalar-type>
<collation>http://marklogic.com/collation/codepoint</collation>
<field-name>suggest</field-name>
<range-value-positions>false</range-value-positions>
<invalid-values>reject</invalid-values>
</range-field-index>
</range-field-indexes>

我出于习惯使用代码点排序规则,但您可以使用您喜欢的任何排序规则。可以在 XQuery 中测试该范围索引:XQuery 中的排序规则必须匹配配置。

cts:values(
cts:field-reference(
'suggest', 'collation=http://marklogic.com/collation/codepoint'))

产生一系列字符串值:

ipsum
lorem

假设您使用的是 REST API,您应该能够使用 /suggest endpoint 执行类似的操作.

关于json - 如何使用 MarkLogic 服务器指定基于 JSON 数组的数据库字段配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28794411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com