我需要根据某些条件获得随机数量的结果。这是我的问题:
query = Company.search('*', limit:10, where: {location: {near: [long,lat], within: distance}, confirmed: true }, execute: false)
query.body[:query] = {function_score:{ random_score: { seed: seed } } }
company_results = query.execute.results
问题是它返回以随机性返回搜索但不应用where参数。它每次只从数据库中给我10个随机公司。已经搜索了几个小时如何解决这个问题,但没有运气。任何帮助表示赞赏,
感谢。
答案 0 :(得分:0)
如果有人遇到同样的问题,找到解决方案。结果是整个查询需要写入正文哈希
query = Company.search '*', body: { size: 10, query: { function_score: { query: { filtered: { query: { term: { confirmed: true } }, filter: { geo_distance: { distance: "150km", location: "#{lat}, #{long}" } } } }, random_score: { seed: DateTime.now.to_i } } } }