Fuse.js с вложенными данными возвращает неверный идентификатор

Я использую http://fusejs.io/ для поиска некоторых данных JSON. Данные представляют собой большой список шкафов, каждый из которых содержит n номеров.

Пример данных:

{"cabinets":[
  {"cabinet":"A4","items":[ 
    {"title":"Toys","keywords":"leksaker, pingpong, kendama, pingis","id":"98"},
    {"title":"Skisch Grand Prix","keywords":"Pokal, cup, pris, skisch","id":"99"},{"title":"Lamp prototype","keywords":"lamp-prototyp","id":"100"}]},
  {"cabinet":"B4","items":[
    {"title":"Screens (LCD)","keywords":"skärm display","id":"30"},
    {"title":"Displays","keywords":"screen skärm","id":"31"},
    {"title":"Lampor","keywords":"","id":"32"}]}
...

Поиск просматривает заголовок и ключевые слова элемента, я хочу, чтобы он возвращал идентификатор соответствующего элемента.

.then(function (response) {
  $scope.cabinets = response.data.cabinets;
  var options = {
    shouldSort: false,
    threshold: 0.3,
    location: 0,
    distance: 100,
    maxPatternLength: 32,
    minMatchCharLength: 2,
    keys: ["items.title","items.keywords"],
    id: "items.id"
  };

  fuse = new Fuse($scope.cabinets, options);
});

Проблема в том, что когда я ищу "Дисплеи", он возвращает идентификатор "Экраны (ЖК-дисплей"), который является первым элементом шкафа. То же самое происходит, если я ищу "Лампор".

Это не указанное поведение в соответствии с: http://fusejs.io/

Кто-нибудь может определить мою ошибку?

0 ответов

Другие вопросы по тегам