Как найти соответствующий запрос ES для запроса Chewy? - PullRequest
1 голос
/ 26 сентября 2019

Я использую chewy в моем приложении rails для запроса ElasticSearch.

Autocomplete - мой индекс ElasticSearch.

AutocompleteIndex.suggest(
      suggest: {
        text: cleanup_query('query'),
        completion: {
          field: 'search_suggest',
          size: 10,
          contexts: {
            entity: @contexts
          },
          fuzzy: { fuzziness: 'AUTO' }
        }
      }
    ).suggest

это жевательный запрос, который я использую для запроса Autocomplete данных.Это, в свою очередь, запросы, подобные этому,

{:body=>{:suggest=>{:suggest=>{:text=>["9"], :completion=>{:field=>"search_suggest", :size=>10, :contexts=>{:entity=>[{:context=>"All"}]}, :fuzzy=>{:fuzziness=>"AUTO"}}}}}, :index=>["autocomplete"], :type=>[]}

Как я могу получить соответствующий ElasticSearch Query для вышеуказанного?

1 Ответ

0 голосов
/ 30 сентября 2019

Чтобы включить журнал ES, установите Chewy.logger.level = :debug в initializers / chewy.rb

{:body=>{:suggest=>{:suggest=>{:text=>["9"], :completion=>{:field=>"search_suggest", :size=>10, :contexts=>{:entity=>[{:context=>"All"}]}, :fuzzy=>{:fuzziness=>"AUTO"}}}}}, :index=>["autocomplete"], :type=>[]}

Выше приведен отформатированный эластичный поисковый запрос.Соответствующий запрос ES для вышеупомянутого будет:

curl -X GET "localhost:9200/autocomplete/_search?pretty" -H 'Content-Type: application/json' -d'
{
        "suggest" : {
            "suggest" : {
                "text" : ["9"],
                "completion": {
                    "field": "search_suggest",
                    "size": 10,
                    "contexts": {
                        "entity":[{"context": "All"}]
                    }
                }
            }
        } 
}
'
...