Преобразование читаемого запроса в запрос ElasticSearch - PullRequest
0 голосов
/ 14 июля 2020

У меня проблемы с головной болью с запросом Elasticsearch.

Я написал код Go с функцией отслеживания:

Шаг 1. Получите читаемый запрос от пользователя Шаг 2. Преобразуйте этот читаемый запрос в Запрос ElasticSearch Шаг 3. Выполните этот запрос ElasticSearch для ответа для пользователя

Например:

После шага 1 я получил этот запрос, как показано ниже

((camp_id = 'elasticsearch' AND title = 'abc') OR (camp_id = 'search' AND title = 'test') OR camp_id = 'ok') AND city = 'Bath' NOT authors = 'radu gheorge'

На шаге 3 , Я хочу преобразовать этот запрос в запрос Elasticsearch, как показано ниже

{
"query": {
    "bool": {
        "must": [
            {
                "bool" : { 
                    "should": [
                        {
            "bool" : { "must": [
              { "match": { "camp_id": "Elasticsearch" }},
              { "match": { "title": "abc" }}                         
            ] }
          },
          { 
            "bool" : { "must": [
              { "match": { "camp_id": "search" }},
              { "match": { "title": "test" }} 
            ] }
          },
          {
            "match": {"camp_id": "ok"}
          }               
                    ] 
                }
            },
            {
                "match": {"city": "Bath"}
            } 
       ],
             "must_not": { "match": {"authors": "radu gheorge" }}  
         }
     }
 }

Первоначально я думаю, что могу разделить строку на OR или AND, но когда запрос от пользователя становится более сложным, этот идеал невозможно.

Я новичок в Elasticsearch.

Пожалуйста, помогите мне.

Заранее спасибо.

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