搜索json嵌套字段(模式+查询)

时间:2018-09-17 09:31:32

标签: solr lucene riak

我将以下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"领域的结果。嵌套研究是否可能未激活或与其他角色相关联?

1 个答案:

答案 0 :(得分: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*