Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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_Search_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,Java,Search,elasticsearch" /> elasticsearch,Java,Search,elasticsearch" />

Java 弹性搜索:组合多个搜索结果

Java 弹性搜索:组合多个搜索结果,java,search,elasticsearch,Java,Search,elasticsearch,我有一个棘手的案子,我不知道如何解决 我有两个问题:q1和q2 这两个查询产生r1和r2 每个结果都按特殊顺序排序 作为一个整体搜索结果,我希望在返回应用程序之前返回r1+r2的串联 原因是如果我以后再这样做,我会破坏分页 有什么想法吗?这可能是一个简单的问题,但我被困在这个 附言: 我们还试验了先按一级排序标准排序,然后按分数排序。。但是分数总是打破第一排序标准,我们不能让分数只在它的范围内工作 建议使用弹性搜索 你可以用一个因子来提升你的水果,这样它们的分数总是比蔬菜分数高,同时保持秩序。您

我有一个棘手的案子,我不知道如何解决

我有两个问题:q1和q2 这两个查询产生r1和r2

每个结果都按特殊顺序排序

作为一个整体搜索结果,我希望在返回应用程序之前返回r1+r2的串联

原因是如果我以后再这样做,我会破坏分页

有什么想法吗?这可能是一个简单的问题,但我被困在这个

附言:


我们还试验了先按一级排序标准排序,然后按分数排序。。但是分数总是打破第一排序标准,我们不能让分数只在它的范围内工作

建议使用弹性搜索

你可以用一个因子来提升你的水果,这样它们的分数总是比蔬菜分数高,同时保持秩序。您可以通过简单的
重量


但是请注意,如果您在一个大数据库上这样做,那么向下翻页到第一个蔬菜将非常消耗资源。我会考虑重建你的UX,使水果和蔬菜实际上是分开的要求。您可以使用_bulkendpoint进行此操作,并在一个服务器API调用中为每种文档类型发送两个单独的查询,然后返回两个结果。

请将此信息添加到您的问题中,而不是作为注释。谢谢您的回答。。我们试过了,但没有达到我们的目标。我给你举个具体的例子。您有一个装满水果的数据库表和一个装满蔬菜表的数据库表。我想首先得到所有的水果,然后根据一个确定的分数来订购,这个分数考虑了颜色和重量。我想对蔬菜表也这么做,但我需要确保所有水果都是按分数排序的,然后所有蔬菜表都是按分数排序的。因此,总结果不是按分数排序的(较低的水果分数小于最高的蔬菜分数),而是2个桶
PUT /test

POST /test/fruits/1
{
    "field": "hello world"
}

POST /test/fruits/2
{
    "field":"hello"
}

POST /test/veges/1
{
    "field": "hello world"
}

POST /test/veges/2
{
    "field":"hello"
}

POST /test/_search
{

    "query": {

        "function_score": {
            "query": {
                "match": {
                   "field": "hello"
                }   
            },
            "functions": [
                {
                    "filter": {
                        "type": {
                           "value": "fruits"
                        }
                    },
                    "weight": 2
                }
            ]
        }
    }
}