Searchkit / Elasticsearch - Найти способ фильтровать MenuFilter друг друга - PullRequest
0 голосов
/ 06 марта 2019

Я использую SearchKit (http://www.searchkit.co/) для создания поисковой системы Elasticsearch с граненым поиском.

Давайте рассмотрим эти данные в Elasticsearch:

{
  "name" : "Zach",
  "car" : [
    {
      "make" : "Saturn",
      "model" : "SL"
    },
    {
      "make" : "Subaru",
      "model" : "Imprezza"
    }
  ]
}
{
  "name" : "Bob",
  "car" : [
    {
      "make" : "Saturn",
      "model" : "Imprezza"
    }
  ]
}

, где car - это вложенный объект, а "make" / "model" - неиндексированные ключевые слова.

Я установил два компонента MenuFilter в Searchkit, как для марки, так и для модели, например:

<MenuFilter id="make" listComponent={Select} title="make" 
field="car.make" fieldOptions={{"type":"nested", options: 
{"path":"car"}}} orderKey="_term" />

и

<MenuFilter id="model" listComponent={Select} title="model" 
field="car.model" fieldOptions={{"type":"nested", options: 
{"path":"car"}}} orderKey="_term" />

Фильтры работают хорошо, но они не взаимодействуют друг с другом, я хотел бы добиться динамической связи между двумя аспектами, где, если выбрано "make", я получаю только модели, связанные с этим "make".

Я вижу, что у компонента Menu есть реквизиты "include" и "bucketsTransform", но я не уверен, как установить в поле модели уже отфильтрованные результаты выбора make.

Примечание: я могу легко это сделать с помощью компонента Hierarchial Menu, но я не хочу, чтобы этот компонент отображался как дерево категорий, и я хотел бы иметь два отдельных поля выбора для выполнения пошагового выполнения. step make => поиск модели.

...