dhilt / dharmadict

MIT License
1 stars 2 forks source link

Search by Russian lang #14

Closed dhilt closed 7 years ago

dhilt commented 7 years ago

Создаем тестовый термин ("test"), заполняем 1 перевод ("тест") и ожидаем, что поиск по "тест" выдаст нам термин "test". Сейчас это не так и надо разобраться с процедурой поиска.

dhilt commented 7 years ago

@BitDen Приоритет этой задачи ниже, чем у README и синхронных тестов с эластиком.

dyuvzhenko commented 7 years ago

@dhilt Я так понимаю, для этой задачи надо использовать решение вроде этого https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-lang-analyzer.html#russian-analyzer?

dyuvzhenko commented 7 years ago

@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))
});
dyuvzhenko commented 7 years ago

@dhilt Хм, удалил в эластике индекс. Просто задал маппинг:

curl -XPUT 'localhost:9200/dharmadict?pretty' -H 'Content-Type: application/json' -d'
{
    "mappings" : {
        "terms" : {
            "properties" : {
                "wylie" : { "type" : "text", "analyzer": "russian" }
            }
        }
    }
}
'

По новому конечно же заполнил данные. И вроде как получилось:

screenshot from 2017-09-12 07-26-15

Это ведь и есть желанный результат?

dhilt commented 7 years ago

@BitDen Это похоже на правду, я хочу еще немного поиграться с этим и потом надо будет обновить db-reset и стартовый снапшот.

dhilt commented 7 years ago

@BitDen Я засунул "analyzer": "russian" во все поля на маппинге в 20170908161900_create_index.js и не могу найти, например, по слову "явления". При этом поиск по слову "дхамма" работал и раньше, проверить это можно на dharmadict.ru, где маппинг изначальный.

Так что нет.

dhilt commented 7 years ago

@BitDen Мне кажется, я сделал фикс https://github.com/dhilt/dharmadict/commit/aa52d7af354e5baf6dc981d3269c162167a4751d

dhilt commented 7 years ago

@BitDen Я слил dev в master и выложил на сервер

dyuvzhenko commented 7 years ago

@dhilt Попробовал на 10 разных словах и переводах, вроде как да, все ищется. А маппинг прилагался к фиксу?

dhilt commented 7 years ago

@BitDen Спасибо! нет маппинга "analyzer": "russian" нет нигде сейчас