【发布时间】:2015-07-19 12:15:30
【问题描述】:
我有一个弹性搜索索引“事件” - 在该索引中有一个类型“事件”。
事件对象有一个“地点”,它具有各种属性,包括一个“名称” - 所以简化的结构是:
event {
venue {
name: "foo"
}
}
现在,我正在使用 elasticsearch-rails - 使用查询 dsl 列出事件、搜索等一切正常 - 但是如果我想列出具有特定名称的场地的所有事件怎么办?
我假设这样的事情应该是可能的:
Event.search "{ 'query': { 'match': { 'venue.name': '#{params[:v]}' }}}
但我收到以下错误:
Elasticsearch::Transport::Transport::Errors::BadRequest
随后是包含大量此类内容的大量堆栈跟踪:
Was expecting one of:\n \"]\" ...\n \"}\" ...\n ];
ParseExceptions 提示 json 格式错误 - 但我不知道为什么。
简单的搜索
Event.search '{"query" : { "match_all" : {} }}'
工作正常,所以我猜这只是查询的结构错误。
我尝试过切换单引号/双引号,尝试更密切地关注此页面上的示例:
https://www.elastic.co/guide/en/elasticsearch/guide/current/denormalization.html
一切都无济于事,想知道是否有其他人遇到过这种情况并可以建议如何在 ruby 中工作。
【问题讨论】:
标签: ruby-on-rails ruby elasticsearch-rails elasticsearch-model