elasticsearch,query-parameters,Ruby On Rails 3.2,elasticsearch,Query Parameters" /> elasticsearch,query-parameters,Ruby On Rails 3.2,elasticsearch,Query Parameters" />

Ruby on rails 3.2 如何使用gem将多个查询参数传递给弹性搜索?

Ruby on rails 3.2 如何使用gem将多个查询参数传递给弹性搜索?,ruby-on-rails-3.2,elasticsearch,query-parameters,Ruby On Rails 3.2,elasticsearch,Query Parameters,我需要在rails中的elasticsearch中添加一个查询中带有特殊特许的字符串。我尝试使用.html_-safe,它不会破坏任何东西,但它仍然以十六进制或其他形式通过特许 这些都将相同的内容传递给elasticsearch <%= @esearch.search q:params[:query] + '&pretty=true' do %> <%= @esearch.search q:params[:query] + '&pretty=true'.htm

我需要在rails中的elasticsearch中添加一个查询中带有特殊特许的字符串。我尝试使用.html_-safe,它不会破坏任何东西,但它仍然以十六进制或其他形式通过特许

这些都将相同的内容传递给elasticsearch

<%= @esearch.search q:params[:query] + '&pretty=true' do %>

<%= @esearch.search q:params[:query] + '&pretty=true'.html_safe do %>

<%= @esearch.search q:params[:query] + raw('&pretty=true') do %>
我希望得到这个:

q=asa&pretty=true

您没有遇到html转义问题。raw和html_-safe仅在直接打印到用户浏览器时不希望输出转义时才有用。例如,参数将输出q=asa&;如果您遇到html转义问题,则pretty=true,但事实并非如此

您看到的是输出url安全值的CGI.escape的结果

在我看来,根据您当前使用的搜索方法,哈希选项将被转换为查询参数。你试过这个吗:

@esearch.search q: params[:query], pretty: true
我不确定搜索在做什么,但在您看来,直接使用这种方法似乎有些奇怪。当然,我可能是错的,因为我不知道它到底在做什么

更新:

请在此处查看文档:

有两种发送查询参数的方法,看起来像。一个是q:'title:text'格式,这是您发送参数[:query]的格式,但看起来您的查询只是'asa',所以我不确定您是否使用了正确的格式?另一个是通过body散列:


您应该仔细阅读该文档,包括弹性搜索选项文档的链接,并找出需要发送的内容。我在文档中看不到“美丽:真实”选项,所以不确定这是为了什么。但是有很多文档,我并没有仔细查看它们,我将把这留给您。

我想您已经搞定了。女巫只会让我想到另一个问题,我怎样才能阻止它发生?我确实尝试过:没错,虽然它没有破坏任何东西,但它也修复了它。谢谢你的帮助。这是你用的宝石吗?或者是别的什么?我正在尝试那个,还有新的elasticsearch客户端。新客户机是我的首选方法,但我似乎无法很好地工作,而且还没有太多的文档。我认为“退休”现在可能会更好,但我在这方面遇到了其他问题。你能链接到你当时使用的东西吗?这是新版本的链接。它确实说集成到轨道上不如轮胎好,但正在取代轮胎。至少我是这样读的。
@esearch.search q: params[:query], pretty: true
@esearch.search body: {
  query: { match: { title: 'test' } },
  facets: { tags: { terms: { field: 'tags' } } }
}