【问题标题】:elasticsearch-rails gem - completion suggesterelasticsearch-rails gem - 完成建议
【发布时间】:2015-02-19 18:02:10
【问题描述】:

您好,我想通过 elasticsearch-rails gem 使用completion suggester

我尝试关注 ruby​​ 客户端 documentation,但在使用 postman 和 rails 客户端时我没有相同的结果。

与邮递员合作:

{
    "suggestions" : {
        "text" : "s",
        "completion" : {
            "field" : "suggest"
        }
    }
}

结果:

{
    "_shards": {
        "total": 1,
        "successful": 1,
        "failed": 0
    },
    "suggestions": [
        {
            "text": "s",
            "offset": 0,
            "length": 3,
            "options": [
                {
                    "text": "superman",
                    "score": 1,
                    "payload": {
                        "id": 922,
                        "tumb_img": "/user/avatar/20/thumb_img.jpg"
                    }
                }
            ]
        }
    ]
}

但不是 ruby​​ 客户端:

Article.__elasticsearch__.client.suggest(:index => '', :body => {
        :suggestions => {
            :text => "s",
            :term => {
                :field => 'suggest'
            }
        }
    })

结果:

{
    "_shards": {
        "total": 11,
        "successful": 11,
        "failed": 0
    },
    "suggestions": [
        {
            "text": "s",
            "offset": 0,
            "length": 1,
            "options": []
        }
    ]
}

我也尝试用完成替换术语,但仍然不起作用:

Article.__elasticsearch__.client.suggest(:index => '', :body => {
        :suggestions => {
            :text => "s",
            :completion => {
                :field => 'suggest'
            }
        }
    })

【问题讨论】:

    标签: ruby-on-rails ruby autocomplete elasticsearch


    【解决方案1】:

    我发现了我的问题:

    Article.__elasticsearch__.client.suggest(:index => Article.index_name, :body => {
            :suggestions => {
                :text => "s",
                :completion => {
                    :field => 'suggest'
                }
            }
        })
    

    【讨论】:

      【解决方案2】:

      这对我有用。

      Elasticsearch::Model.client.suggest index: 'articles', 
                             body: { 
                                    suggestion: { 
                                         text: 's', 
                                         completion: { 
                                             field: 'suggest' 
           #suggest or any field that has mapping with type: 'completion', payloads: true
                                                     } 
                                                } 
                                    }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-05-07
        • 2022-01-22
        • 1970-01-01
        • 2020-07-14
        • 1970-01-01
        • 2017-09-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多