Closed dhilt closed 7 years ago
@BitDen Приоритет этой задачи ниже, чем у README и синхронных тестов с эластиком.
@dhilt Я так понимаю, для этой задачи надо использовать решение вроде этого https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-lang-analyzer.html#russian-analyzer?
@dhilt Не понимаю пока как бы с помощью эластика это сделать, но пока зародилась идея просто-напросто написать функцию, с помощью которой полученную строку преобразовывать из русской в английскую и полученный результат передавать в метод searchByPattern на server.js:
app.get('/api/search', (req, res) => {
let pattern = translateFunc(req.query.pattern);
termsController.searchByPattern(pattern)
.then(result => res.json(result))
.catch(error => sendApiError(res, 'Search error', error))
});
@dhilt Хм, удалил в эластике индекс. Просто задал маппинг:
curl -XPUT 'localhost:9200/dharmadict?pretty' -H 'Content-Type: application/json' -d'
{
"mappings" : {
"terms" : {
"properties" : {
"wylie" : { "type" : "text", "analyzer": "russian" }
}
}
}
}
'
По новому конечно же заполнил данные. И вроде как получилось:
Это ведь и есть желанный результат?
@BitDen Это похоже на правду, я хочу еще немного поиграться с этим и потом надо будет обновить db-reset и стартовый снапшот.
@BitDen Я засунул "analyzer": "russian"
во все поля на маппинге в 20170908161900_create_index.js и не могу найти, например, по слову "явления". При этом поиск по слову "дхамма" работал и раньше, проверить это можно на dharmadict.ru, где маппинг изначальный.
Так что нет.
@BitDen Мне кажется, я сделал фикс https://github.com/dhilt/dharmadict/commit/aa52d7af354e5baf6dc981d3269c162167a4751d
@BitDen Я слил dev в master и выложил на сервер
@dhilt Попробовал на 10 разных словах и переводах, вроде как да, все ищется. А маппинг прилагался к фиксу?
@BitDen Спасибо! нет маппинга "analyzer": "russian" нет нигде сейчас
Создаем тестовый термин ("test"), заполняем 1 перевод ("тест") и ожидаем, что поиск по "тест" выдаст нам термин "test". Сейчас это не так и надо разобраться с процедурой поиска.