Я хочу использовать 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" } },
],
}
}
}
Как я могу сделать этот процесс всего за один запрос?