答案 0 :(得分:1)
第一部分:
您应该能够从ES客户端获得elasticsearch的查询。这将有助于调试过滤器无法正常工作的原因
关于第二部分,user_last_active_at
应该具有哪种类型?你的映射非常好
错误消息显示user_last_active_at
在索引中是字符串类型,因此您需要在映射中为该字段启用field_data(查看here)
答案 1 :(得分:0)
首先,我没有向ES表明user_last_active_at
应该如何编入索引,所以我指定了要编入索引的字段类型:
field :user_last_active_at, type: 'date', value: ->(listing) { listing.user.last_active_at }
至于listing_type
字段,我认为问题在于ES正在对字段值进行标记(将其拆分为单个字符)。相反,我的目标是搜索完整的字段值。使用keyword
使其可搜索
field :listing_type, analyzer: 'keyword'