【问题标题】:How to find the corresponding ES query for a Chewy query?如何为 Chewy 查询找到对应的 ES 查询?
【发布时间】:2019-09-30 13:02:40
【问题描述】:

我在我的 rails 应用程序中使用 chewy 来查询 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?

【问题讨论】:

    标签: ruby-on-rails elasticsearch rubygems chewy-gem


    【解决方案1】:

    要启用 ES 日志,请在 initializers/chewy.rb 中设置 Chewy.logger.level = :debug

    {: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"}]
                        }
                    }
                }
            } 
    }
    '
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-03
      • 1970-01-01
      • 1970-01-01
      • 2010-11-01
      • 1970-01-01
      • 2017-03-24
      • 1970-01-01
      相关资源
      最近更新 更多