Как научить Биксби распознавать термин поиска по шаблону? - PullRequest
0 голосов
/ 06 октября 2019

У меня есть действие FindPage.js, которое находит страницы и извлекает их для отображения в качестве результатов. Я понимаю, как обучить его поиску страниц с такими высказываниями, как «Читать страницу поиска в Твиттере» или «Читать страницу с поиском текста». Тренинг рассматривает «Поиск в Твиттере» как SearchTerm, а код ниже сопоставляет SearchTerm с полем тега в данных. Но как мне научиться понимать команду типа «Читать все страницы»? Я хочу, чтобы код выполнял поиск по шаблону и возвращал все доступные страницы.

// search for informational pages

var console = require('console');

const PAGES = require('./content/pages')

 pages = PAGES
 console.log('pages are', pages)

exports.function = function findPage (searchTerm) {
  console.log('searchTerm is', searchTerm)
  var matches = []  
  pages = PAGES

  for (var i = 0; i < pages.length; i++) {
    if (searchTerm == pages[i].tag) {
        matches.push(pages[i])
    }
    else

        { console.log('no tag matches')        
          }
    }

  console.log('matches are', matches)
  return matches
}

Обучение:

[g: Page] Прочитайте (поиск в Твиттере) [v:SearchTerm] page.

1 Ответ

1 голос
/ 07 октября 2019

Это работает, хотя я чувствую, что несколько затруднительно жестко закодировать преобразование из «всех» в подстановочную строку, которая является ''.

exports.function = function findPage (searchTerm) {
  //console.log('searchTerm is', searchTerm)

  if (searchTerm == 'all') {
    searchTerm = ''
    console.log('searchTerm is all', searchTerm)
    }
  else
  { console.log('searchTerm is not all', searchTerm)
    }

  var matches = []  
  pages = PAGES



  matches = pages.filter(function(pages) {
  return pages.tag.includes(searchTerm);
});

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes#Examples См. Пример

const str = 'To be, or not to be, that is the question.';
console.log(str.includes('To be'));       // true
console.log(str.includes(''))             // true
...