Поиск термина в поисковой фразе

У меня есть словарь цветов и есть длинный запрос
"Красные шерстяные носки"
Document:
{
name = color
value = красный Keword()
}
То есть мне надо определить какой цвет в этой фразе.
Как это сделать что бы при запросе "Красные шерстяные носки" вернул value: "красный"?

Вы не могли бы описать подробнее проблему, которую вы хотите решить? Что вы будете делать потом с этой информацией?

потом когда определю что это

  1. красный - цвет
  2. носок - продукт
  3. шерстяной - материал
    Дальше буду обучать NLP NER

То есть куча словарей при помощи которых хотел находить нужные термины.

Все равно не понимаю, что вы хотите получить :confused:

Search phrase:
"Nike Children's Free Run 2 PS Rip Tape Trainers, Green"

Dictionary:
name, value
color, green
color, red
color, black

Mapping (возможно надо подругом менять?):
{
name = Keyword()
value = Keyword()
}

Query:
{
query :{
match (как выбрать правильный тип запроса?): {
value: "Nike Children's Free Run 2 PS Rip Tape Trainers, Green"
}
}
}

Results: hits: []
Перепробывал по разному: term, fuzzing. Но я как понимаю еластик решает обратную задачу поиска по термину (фразе) документа.

Сейчас костыль: итерационно перебираю каждое слово и делаю term на каждое слово.

Ну тут либо подсветка, либо бить запрос по термам и врапить каждый терм в именной фильтр. Я, думаю, второе решение будет проще.

1 Like

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.