【发布时间】:2017-03-29 17:14:50
【问题描述】:
我有一个包含所有 json 文档的 ML 数据库。我在为该文档创建字段时遇到问题。假设我有一个文档
{
"id": "1452016",
"name": "ALEXA488",
"identifyingInfo": {
"preparation": {
"chemicalConjugations": [{
"name": "ALEXA 488"
}]
}
}
}
我为顶级 json 元素 name 创建了一个字段 ..
{
"field-name": "concept_name",
"field-path": [
{
"path": "/name",
"weight": 1
}
],
"word-lexicon" :["http://marklogic.com/collation/en/S1"]
}
我也在这个字段上创建了一个字段范围索引..
现在当我像这样进行搜索时
xquery version "1.0-ml";
import module namespace search = "http://marklogic.com/appservices/search" at "/MarkLogic/appservices/search/search.xqy";
let $search := ' (concept_name:(*ALEXA*))'
let $options :=
<options xmlns="http://marklogic.com/appservices/search">
<constraint name="collection">
<collection prefix=""/>
</constraint>
<constraint name="concept_name">
<word>
<field name="concept_name" collation="http://marklogic.com/collation/en/S1"/>
</word>
</constraint>
<term>
<term-option>case-insensitive</term-option>
<term-option>punctuation-insensitive</term-option>
<term-option>whitespace-insensitive</term-option>
<term-option>wildcarded</term-option>
</term>
<return-facets>false</return-facets>
<return-values>false</return-values>
<return-constraints>false</return-constraints>
<return-frequencies>false</return-frequencies>
<return-qtext>false</return-qtext>
<search-option>format-json</search-option>
<search-option>score-simple</search-option>
</options>
let $start := 1
let $page-length :=1
let $result := search:search($search, $options, $start, $page-length)
return $result
搜索匹配顶级name 和identifyingInfo/preparation/chemicalConjugations/name..
字段路径应该是什么,以便它只匹配顶级 json 元素,在本例中为 name ?
【问题讨论】:
标签: marklogic marklogic-8