首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >elasticsearch-rails宝石-完成建议器

elasticsearch-rails宝石-完成建议器
EN

Stack Overflow用户
提问于 2014-12-21 11:57:04
回答 2查看 1.2K关注 0票数 4

嗨,我想使用完形暗示器使用elasticsearch创业板。

我尝试遵循ruby客户端文档,但是在使用postman和rails客户机时没有相同的结果。

与邮递员合作:

代码语言:javascript
复制
{
    "suggestions" : {
        "text" : "s",
        "completion" : {
            "field" : "suggest"
        }
    }
}

结果:

代码语言:javascript
复制
{
    "_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"
                    }
                }
            ]
        }
    ]
}

但与红宝石客户不同:

代码语言:javascript
复制
Article.__elasticsearch__.client.suggest(:index => '', :body => {
        :suggestions => {
            :text => "s",
            :term => {
                :field => 'suggest'
            }
        }
    })

结果:

代码语言:javascript
复制
{
    "_shards": {
        "total": 11,
        "successful": 11,
        "failed": 0
    },
    "suggestions": [
        {
            "text": "s",
            "offset": 0,
            "length": 1,
            "options": []
        }
    ]
}

我也试着用完成来代替术语,但仍然不起作用:

代码语言:javascript
复制
Article.__elasticsearch__.client.suggest(:index => '', :body => {
        :suggestions => {
            :text => "s",
            :completion => {
                :field => 'suggest'
            }
        }
    })
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-23 15:02:16

我发现了我的问题:

代码语言:javascript
复制
Article.__elasticsearch__.client.suggest(:index => Article.index_name, :body => {
        :suggestions => {
            :text => "s",
            :completion => {
                :field => 'suggest'
            }
        }
    })
票数 0
EN

Stack Overflow用户

发布于 2014-12-30 02:39:48

这是对我有用的。

代码语言:javascript
复制
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
                                               } 
                                          } 
                              }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27589122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档