在 json 个嵌套字段中搜索(架构 + 查询)
Search in json nested fields (schema + query)
我将以下 JSON 存储在处理 Solr 研究的 Riak 存储桶中。
{
"date" : 1535673489,
"customer" : {
"name" : "X"
"id" : 1205643
}
}
我的 schema.xml
字段目前看起来像这样
<field name="_version_" type="long" indexed="true" stored="true"/>
<field name="date" type="int" indexed="true" stored="true" mult iValued="true"/>
并且对日期的研究非常适合查询
$RIAK_HOST/search/query/order?wt=json&q=date:[1535553489%20TO%201535599999]
不幸的是,我没有找到任何文档来解释如何在子字段上正确地字段和查询 customer.name
或 customer.id
编辑:正如我在下面的 post Riak search schema and nested fields 中发现的,似乎我需要创建如下字段:
<field name="customer_name" type="string" indexed="true" stored="true" mult iValued="true"/>
但是当我查询这些字段时,我的请求没有得到任何答复
编辑 2:我继续进行以下实验,没有收到 riak 的任何错误。
我上传了文件
{
"customer_name" : "toto",
"customer" : {
"name" : "tata"
}
}
Riak 通过研究获得了实地 "toto"
的结果,而不是 "tata"
的结果。嵌套研究是否可能未激活或与另一个角色相关联?
您需要添加到 schema.xml
的字段如下:
<field name="date" type="string" indexed="true" stored="true"/>
<field name="customer" type="string" indexed="true" stored="true" multiValued="true"/>
<field name="customer.name" type="string" indexed="true" stored="true"/>
<field name="customer.id" type="string" indexed="true" stored="true"/>
然后您需要按如下方式查询您的索引:
$RIAK_HOST/search/query/order?wt=json&q=customer.name:t*
我将以下 JSON 存储在处理 Solr 研究的 Riak 存储桶中。
{
"date" : 1535673489,
"customer" : {
"name" : "X"
"id" : 1205643
}
}
我的 schema.xml
字段目前看起来像这样
<field name="_version_" type="long" indexed="true" stored="true"/>
<field name="date" type="int" indexed="true" stored="true" mult iValued="true"/>
并且对日期的研究非常适合查询
$RIAK_HOST/search/query/order?wt=json&q=date:[1535553489%20TO%201535599999]
不幸的是,我没有找到任何文档来解释如何在子字段上正确地字段和查询 customer.name
或 customer.id
编辑:正如我在下面的 post Riak search schema and nested fields 中发现的,似乎我需要创建如下字段:
<field name="customer_name" type="string" indexed="true" stored="true" mult iValued="true"/>
但是当我查询这些字段时,我的请求没有得到任何答复
编辑 2:我继续进行以下实验,没有收到 riak 的任何错误。
我上传了文件
{
"customer_name" : "toto",
"customer" : {
"name" : "tata"
}
}
Riak 通过研究获得了实地 "toto"
的结果,而不是 "tata"
的结果。嵌套研究是否可能未激活或与另一个角色相关联?
您需要添加到 schema.xml
的字段如下:
<field name="date" type="string" indexed="true" stored="true"/>
<field name="customer" type="string" indexed="true" stored="true" multiValued="true"/>
<field name="customer.name" type="string" indexed="true" stored="true"/>
<field name="customer.id" type="string" indexed="true" stored="true"/>
然后您需要按如下方式查询您的索引:
$RIAK_HOST/search/query/order?wt=json&q=customer.name:t*