Как разобрать строки с помощьюasticsearh - PullRequest
0 голосов
/ 20 ноября 2018

Я хочу использовать ElasticSearch для разделения токенов в строке. Допустим, у меня есть строка, из которой я хочу извлечь имя:

John Smith had a little lamb

Моя идея состоит в том, чтобы создать несколько версий, найти ихна индекс имени и получите тот с наибольшим счетом:

John
John Smith
John Smith had
....

Какой лучший способ сделать это с ElasticSearch?

Редактировать: я хочу что-то вроде этого:

//this combination is not right, gives me a low score
{
  "query": {
    "bool" : {
      "should" : [
        { "match" : { "name" : "John" } },
      ],
    }
  }
}
//this combination is right, gives me a high score
{
  "query": {
    "bool" : {
      "should" : [
        { "match" : { "name" : "John" } },
        { "match" : { "name" : "Smith" } },
      ],
    }
  }
}
//this one also gives me a low score, stop searching here
{
  "query": {
    "bool" : {
      "should" : [
        { "match" : { "name" : "John" } },
        { "match" : { "name" : "Smith" } },
        { "match" : { "name" : "had" } },
      ],
    }
  }
}

Как я могу сделать этот процесс всего за один запрос?

1 Ответ

0 голосов
/ 21 ноября 2018

Мне не очень понятно, как вы могли бы извлечь имя из этого документа.Конечно, не что-то эластичное, что может сделать поиск, и оно должно исходить из какой-то логики ... Разве имя классифицируется по словам, которые всегда начинаются с заглавной буквы?Если это так, используйте анализатор пробелов, так как анализатор английского языка будет в нижнем регистре и ставить эти термины

Относительно оценки, я не уверен, как это поможет вам ... Какой показатель выше, это термины, которые наименее распространены - ягненок может быть меньшечаще встречается в вашем индексе, чем термин «Джон» или «Смит», но «маленький» может быть более распространенным, поэтому я не знаю, как это поможет вам узнать, что имя «Джон Смит». Или вы говорите, что ищете набор из двух токенов /слова ...

Может быть, вопрос заключается в разъяснении того, чего вы хотите достичь, и тогда вы можете проверить, как ES может это сделать

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