在json嵌套字段中搜索(架构+查询)

问题描述 投票:2回答:1

我将以下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.namecustomer.id

编辑:正如我在以下帖子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"的结果。嵌套研究是否可能未被激活或与另一个角色相关联?

solr lucene riak
1个回答
0
投票

您需要添加到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* 
© www.soinside.com 2019 - 2024. All rights reserved.