elasticsearch - 从特定值开始的Elasticsearch查询

标签 elasticsearch elasticsearch-query

有没有一种方法可以从特定值开始查询并在Elasticsearch中获取接下来的n条记录?

例如,我想要从员工ID“ABC_123”开始获得10条记录。
下面的查询给出了一个错误提示

[terms] query does not support [empId]


GET /_search
{   
    "from": 0, "size": 10,
    "query" : {
        "terms" : {
            "empId" : "ABC_123"
        }
    }
}

我该怎么办?

最佳答案

您可以使用prefix query,还可以阅读有关autocomplete on my blog的更多信息,其中讨论了4种使其工作的方法及其权衡。

我对您的样本数据使用了前缀查询,并获得了预期的输出,下面是逐步指南。

索引映射

{
    "mappings": {
        "properties": {
            "empId": {
                "type": "keyword" --> field type `keyword`
            }
        }
    }
}

索引样本文档
{
  "empId" : "ABC_1231"
}

{
  "empId" : "ABC_1232"
}

{
  "empId" : "ABC_1233"
}

{
  "empId" : "ABC_1234"
}

等等

前缀搜索查询
{
    "from": 0,
    "size": 10,
    "query": {
        "prefix": {
            "empId": "ABC_123"
        }
    }
}

搜索结果
"hits": [
      {
        "_index": "so_prefix",
        "_type": "_doc",
        "_id": "1",
        "_score": 1.0,
        "_source": {
          "empId": "ABC_1231"
        }
      },
      {
        "_index": "so_prefix",
        "_type": "_doc",
        "_id": "2",
        "_score": 1.0,
        "_source": {
          "empId": "ABC_1232"
        }
      },
      {
        "_index": "so_prefix",
        "_type": "_doc",
        "_id": "3",
        "_score": 1.0,
        "_source": {
          "empId": "ABC_1233"
        }
      },
      {
        "_index": "so_prefix",
        "_type": "_doc",
        "_id": "4",
        "_score": 1.0,
        "_source": {
          "empId": "ABC_1234"
        }
      }
    ]

关于elasticsearch - 从特定值开始的Elasticsearch查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60795200/

相关文章:

elasticsearch - 使用Kibana在 Elasticsearch 中过滤邮件正文

elasticsearch - Elasticsearch-使用n-gram搜索通配符

mysql - 将Logstash设置安装到AWS RDS上托管的Mysql。无法连接

java - Elasticsearch Java High Level Rest Client 使用多个匹配值和 OR 条件构建 boolean 查询

python - Elasticsearch 查询从 regexp 输入参数中查找列表中值的完全匹配

elasticsearch - Elasticsearch映射解析器异常?

javascript - AWS.HttpClient handleRequest 在 AWS lambda 中不起作用

ruby - Tire gem:索引中是否存在文件?

python - 如何读取搜索分析器的配置?

Elasticsearch 自定义评分脚本——检查字段是否存在?