Axios.all: Как использовать API тезауруса, чтобы моя панель поиска включала синонимы входного слова в результаты поиска? - PullRequest
0 голосов
/ 05 июля 2018

У меня есть панель поиска для сайта со списком вакансий, который я пытаюсь дать возможность найти похожие слова (пример: если кто-то искал «веб-разработка», но работа была указана в разделе «разработка программного обеспечения», она все равно быть возвращенным).

Я использую axios для одновременного получения информации о работе из моей базы данных и получения синонимов введенного слова из стороннего API. Я хочу, чтобы он проверял синонимы, а затем возвращал списки вакансий, которые соответствуют всем синонимам введенного слова.

На данный момент у меня есть методы, которые устанавливают информацию, возвращаемую из базы данных, в состояние answer1 или answer2 в зависимости от того, выбрал ли пользователь поиск по компании или названию должности. Моим первым инстинктом было установить информацию из API синонима как «answer3» для объекта состояния, но я не могу понять, где в методе мне нужно указать ему возвращать задания, которые также соответствуют всем синонимам ввода. Это то, что я до сих пор:

 getProjResults = (e) => {
    e.preventDefault();
    console.log('--------hit4')
    axios.all([
        axios.get(`/api/projects?search=${this.state.term}`),
        axios.get(`/words?ml=${this.state.term}`)
    ]).then(axios.spread(function(dbResponse, wApiResponse) {
        console.log("DB Info", dbResponse.data);
        console.log("Words API Info", wApiResponse.data)
        this.setState({
            answer1: '',
            answer2: dbResponse.data,
            answer3: wApiResponse.data
        })
    })
}

answer1 предназначен для поиска пользователем по компании и задан в другой функции. функция getProjResults вызывается в обработчике onClick на кнопке поиска. Нужно ли мне создавать новую функцию, чтобы она также осуществляла поиск по синонимам, или я могу сделать это в этой функции?

1 Ответ

0 голосов
/ 05 июля 2018

Похоже, что вы должны делать это на бэкэнде, поэтому вам нужно всего лишь сделать один вызов вашему API.

Вы должны сначала получить синонимы от слов api, а затем получить списки для всех слов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...