Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.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
Java 使用弹性搜索在搜索后应用过滤器_Java_Filter_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,Java,Filter,elasticsearch" /> elasticsearch,Java,Filter,elasticsearch" />

Java 使用弹性搜索在搜索后应用过滤器

Java 使用弹性搜索在搜索后应用过滤器,java,filter,elasticsearch,Java,Filter,elasticsearch,我有以下用例场景。我正在使用一些查询词进行搜索,方法是聚合一些字段,而最初不应用任何过滤器。现在让我们假设结果是100000,我有50000个来自A类,50000个来自B类。在UI中,如果我单击“A类”按钮,我想筛选结果并显示属于A类的结果。这是否可能,而无需进行新的搜索。我可以在搜索完成后过滤结果吗。如果是,我怎么做?一些java代码将不胜感激。您应该使用post_过滤器。你可以查看官方网页了解更多信息 您还可以在博客文章中阅读有关过滤器工作的信息 这主要是过滤器的工作原理: 我可以看到,在搜

我有以下用例场景。我正在使用一些查询词进行搜索,方法是聚合一些字段,而最初不应用任何过滤器。现在让我们假设结果是100000,我有50000个来自A类,50000个来自B类。在UI中,如果我单击“A类”按钮,我想筛选结果并显示属于A类的结果。这是否可能,而无需进行新的搜索。我可以在搜索完成后过滤结果吗。如果是,我怎么做?一些java代码将不胜感激。

您应该使用post_过滤器。你可以查看官方网页了解更多信息

您还可以在博客文章中阅读有关过滤器工作的信息

这主要是过滤器的工作原理:


我可以看到,在搜索请求期间应用了post筛选器。我想在此请求后筛选我的数据。我想从SearchResponse中筛选数据。执行查询后将应用Post筛选器。它在计算结果时应用,然后对结果进行过滤。我发布的链接中的示例代码显示setPostFilter()函数是在execute()函数之前应用的。由此我了解到,过滤器是在执行查询之前应用的。你能给我一个Java的例子来说明不同的方法吗?提前谢谢,我已经知道这个代码示例了。execute()函数只是通过索引发送查询。它实际上并没有执行它!elasticsearch做到了!我只想提醒您,您的java应用程序是一个客户端,它将请求发送到要执行的服务器elasticsearch。因此,实际上,您的查询的执行顺序将如我更新答案的博客文章中所述。