elasticsearch,Ruby On Rails,Ruby,elasticsearch" /> elasticsearch,Ruby On Rails,Ruby,elasticsearch" />

Ruby on rails 如何在Rails中存储大型JSON哈希

Ruby on rails 如何在Rails中存储大型JSON哈希,ruby-on-rails,ruby,elasticsearch,Ruby On Rails,Ruby,elasticsearch,我正在使用elasticsearch railsgem和elasticsearch模型gem并编写一个查询,这个查询恰好非常庞大,因为gem接受查询的方式 查询本身并不长,但过滤器非常长,我需要传入变量以正确过滤结果。以下是一个例子: def search_for(input, question_id, tag_id) query = { :query => { :filtered => { :query

我正在使用
elasticsearch rails
gem和
elasticsearch模型
gem并编写一个查询,这个查询恰好非常庞大,因为gem接受查询的方式

查询本身并不长,但过滤器非常长,我需要传入变量以正确过滤结果。以下是一个例子:

def search_for(input, question_id, tag_id)
    query = {
        :query => {
            :filtered => {
                :query => {
                    :match => {
                        :content => input
                    }
                },
                :filter => {
                    :bool => {
                        :must => [
                            {
                                # another nested bool with should
                            },
                            {
                                # another nested bool with must for question_id
                            },
                            {
                                # another nested bool with must for tag_id
                            }
                        ]
                    }
                }
            }
        }
    }
    User.search(query) # provided by elasticsearch-model gem
end
为了简洁起见,我省略了其他嵌套bool,但正如您可以想象的,它可以很快变长

有人对如何储存这个有什么想法吗?我正在考虑一个yml文件,但它似乎错了,特别是因为我需要传入
question\u id
tag\u id
。还有其他想法吗


如果有人熟悉这些gem,并且知道gem的
search
方法是否接受其他格式,我也想知道这一点。在我看来,它只是想要一些可以变成散列的东西。

我认为使用方法是可以的。我会将搜索与查询分开:

def query_for(input, question_id, tag_id)
  query = {
    :query => {
    ...
end

search query_for(input, question_id, tag_id)

另外,我看到这个搜索功能在用户模型中,但我想知道它是否属于用户模型。使用
搜索
查询
模型是否更有意义?

我实际上没有在模型上进行搜索。我想这是gem为了方便而做的事情。