Поиск во вложенных полях json (схема + запрос) - PullRequest
0 голосов
/ 17 сентября 2018

Я получил следующий JSON, хранящийся в корзине Riak, которая занимается исследованиями Solr.

{
  "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

Редактировать : Как я обнаружил в следующем посте Схема поиска Riak и вложенные поля , кажется, что мне нужно создать поля следующим образом:

<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 голосов
/ 17 сентября 2018

Поля, которые необходимо добавить к 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* 
...