当前位置: 首页 > 面试题库 >

轮胎术语过滤器不起作用

微生俊健
2023-03-14
问题内容

我正在尝试通过轮胎/elasticsearch实现“类似作用域”的功能。为什么即使我有状态为“ Test1”或“ Test2”的条目也不能正常工作?结果始终为空。

  collection = @model.search(:page => page, :per_page => per_page) do |s|
    s.query {all}
    s.filter :terms, :status => ["Test1", "Test2"]
    s.sort {by :"#{column}", "#{direction}"}
  end

该方法在没有过滤器的情况下工作良好。过滤器方法有问题吗?我已经检查了轮胎doku。

谢谢!:)


问题答案:

您的问题很可能是由于对该status字段使用默认映射而引起的,该映射会将其标记化-小写,拆分为单词等。

比较这两个:

http://localhost:9200/myindex/_analyze?text=Text1&analyzer=standard

http://localhost:9200/myindex/_analyze?text=Text1&analyzer=keyword

您的解决方案是在映射中使用keyword分析器(或将字段设置为not_analyzed)。如果该字段不是“枚举”类型的数据,则可以使用多字段功能。

有效的Ruby版本如下所示:

require 'tire'

Tire.index('myindex') do
  delete
  create mappings: {
    document: {
      properties: {
        status: { type: 'string', analyzer: 'keyword' }
      }
    }
  }

  store status: 'Test1'
  store status: 'Test2'

  refresh
end

search = Tire.search 'myindex' do
  query do
    filtered do
      query { all }
      filter :terms, status: ['Test1']
    end
  end
end

puts search.results.to_a.inspect

注意:在没有提供索引映射,示例数据等的情况下,极不可能(在这种情况下为例外)提供合理的建议。



 类似资料:
  • 问题内容: 以下HTML,Javascript和JSON可以正确呈现,但该过滤器根本不起作用。我们做错了什么? Javascript: 这两个JSON: api / distributors / my: api /仪表板/目录 问题答案: 角度过滤器无法将对象的对象作为输入。ng- repeat可以渲染它们,但是过滤器需要一个对象数组。解决此问题的最简单方法是让服务器返回没​​有命名键的数组。您还

  • 我有一个电影模型和一个搜索页面,有一个电影流派方面。可以在搜索页面上的每个方面附近选择一个复选框。我将选中的方面术语列表传递给控制器,我希望筛选电影集合只包括那些用复选框选择了类型的电影。 我的带有索引和搜索定义的模型是: 我不确定这部分应该怎么改写: 稍后,我将把流派列表或流派ID作为参数传递,我需要对它们进行筛选。 它过滤到有‘类型1'或’类型2'或‘类型3'的电影,我需要这些类型和逻辑。 我

  • 问题内容: 我的查询是这样的: 它会引发QueryParsingException [[comos_v2] [条件]过滤器不支持[mediaType]] ,而映射中不存在“ mediaType”字段。我的问题是为什么术语过滤器不引发异常? 问题答案: 以上不是有效的查询DSL。在上述条款过滤器中,“ mediaType”字段的值应为数组 应该是以下内容:

  • 所以,基本上,前端使用reactJS,后端Spring Boot(微服务,zuul充当网关),当然,如果没有CORS的东西,他们什么也做不了。 我们使用了这段代码 它起作用了,但不再起作用了。我正在使用Postman检查发送回来的标头,但这些都不在那里。 我该怎么办?我可以在每个微服务中使用一个简单的CORS过滤器,但让Zuul处理这一切会容易得多。因为无论如何所有请求都会通过它。 有什么建议吗?

  • 概述 花纹轮胎通常与同步带轮90T一起使用。 参数 材质:硅胶 直径:68.5mm 宽度:22mm 搭建案例

  • 概述 Makeblock 光面轮胎64*16mm由硅制成,表面光滑,可以降低阻力,使您的遥控车跑得更快。它也兼容于mBot中的Makeblock同步带轮90T。 参数 材质:硅胶 直径:64mm 宽度:16mm 尺寸图纸 搭建案例