我正在使用ElasticSearch gem Searchkick和Rails,我想基于两个值执行搜索:
- params[:full_text_query]
- params[:only_from_this_location]一个应在所有字段上搜索全文,另一个应将搜索限制为仅部分匹配某个字段的记录。
我想要这样的东西:
Post.search(params[:full_text_query], where: { location: params[:only_from_this_location] })然而,我需要位置过滤器来匹配不仅精确值,而且部分的值。所以不只是“纽约”,还有“纽约,美国”。就像你在SQL中要做的事情一样。
我还需要对分页的支持,所以它需要在一个查询中。
我有什么选择?
发布于 2016-01-19 06:12:27
在我目前的项目中,我也在努力解决这类问题,如果你发现了任何解决查询的方法,比如searchckick中的问题,请分享。
但是,对于分页,您可以将以下参数添加到行中
Post.search(params[:full_text_query], where: { location: params[:only_from_this_location] }, per_page: 10)发布于 2016-03-23 12:50:15
正则表达式允许在Searchkick方法中使用。尝试在您的代码中使用类似这样的内容。
Post.search(params[:full_text_query], where: { location: /.*#{params[:only_from_this_location]}.*/ })https://stackoverflow.com/questions/30906050
复制相似问题