Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Symfony2+进行弹性搜索;聚合[复合]_Symfony_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Filtering_Faceted Search_Technical Debt - Fatal编程技术网 elasticsearch,filtering,faceted-search,technical-debt,Symfony,elasticsearch,Filtering,Faceted Search,Technical Debt" /> elasticsearch,filtering,faceted-search,technical-debt,Symfony,elasticsearch,Filtering,Faceted Search,Technical Debt" />

使用Symfony2+进行弹性搜索;聚合[复合]

使用Symfony2+进行弹性搜索;聚合[复合],symfony,elasticsearch,filtering,faceted-search,technical-debt,Symfony,elasticsearch,Filtering,Faceted Search,Technical Debt,我正在使用FOSElastica创建一个带有Elastic search+Symfony2的搜索页面。我已经设置好了存储库、模型转换和分页 我有地理位置搜索和以下几个聚合 距离范围

我正在使用FOSElastica创建一个带有Elastic search+Symfony2的搜索页面。我已经设置好了存储库、模型转换和分页

我有地理位置搜索和以下几个聚合

距离范围

  • <5英里
  • 25英里
  • 50英里
  • 100英里
两点之间的持续时间

  • 30分钟
  • 1小时
  • 2小时
  • 3小时
类别

  • 汽车
  • 卡车
  • 自行车
  • 悬停板
位置:地理点(默认值由国家/地区设置)

问题: 用户将通过多次聚合单击来筛选其数据,以缩小数据范围。跟踪用户激活的聚合的最佳方式是什么

如何显示控制器和服务方法之间的发送和接收筛选器聚合


是否最好按会话跟踪所有内容?

由于默认的Elasticsearch响应文档不包含提交的查询,您需要跟踪MVC应用程序中的筛选器选择状态,以便正确呈现筛选器控件

一些选择:

  • 在页面上编码为表单元素(可能隐藏)的筛选器。表单可以通过Ajax发布
  • 编码到url的过滤器(可添加书签/可共享搜索的附加好处)
  • 存储在会话中的筛选器(不确定为什么需要此筛选器,但这是可能的)
提交搜索请求后,调用Elasticsearch的控制器现在负责将用户的过滤器选择状态传递给Elastica(并且返回到视图以及搜索结果)



这种从搜索控制器返回的回显过滤器状态非常有用,特别是当您需要重新绘制包含搜索过滤器的页面部分时

请澄清你问题的范围。你已经用过两次track这个词了。这是关于记录/计算与其他过滤器相比使用最多的过滤器吗?或者,您是否试图确定了解给定Elasticsearch响应文档的过滤器当前选择状态的最佳方式?了解给定Elasticsearch响应文档的过滤器当前选择状态的最佳方式?(在刷新页面上向用户显示时)