如何管理Elasticsearch索引数据

niknxzdl  于 2023-06-21  发布在  ElasticSearch
关注(0)|答案(1)|浏览(142)

我正在使用Elasticsearch搜索产品。
每天执行产品信息的完整索引。
我正在删除和重新创建索引,以进行干净的索引,但我不确定当时如何处理产品搜索。
在完全索引时处理查询的标准方法如何?
在清理完整索引期间,我考虑在创建一个全新的索引后通过状态检查逻辑地处理它,但我想知道是否有更好的方法。

2izufjch

2izufjch1#

正确的做法是使用别名。您有当前的产品索引,我们称之为products-1,它的别名为products。所有的搜索查询都通过别名而不是索引名。
当你需要重新索引你的产品时,你这样做,但在一个名为products-2的新索引中,当你完成索引并测试一切正常时,你只需使用以下命令切换别名,你的搜索查询将不间断地进行:

POST _aliases
{
  "actions": [
    {
      "remove": {
        "index": "products-1",
        "alias": "products"
      }
    },
    {
      "add": {
        "index": "products-2",
        "alias": "products"
      }
    }
  ]
}

然后,您可以继续删除索引,或者如果您有信心,您可以在像这样的单个步骤中完成它:

POST _aliases
{
  "actions": [
    {
      "remove_index": {
        "index": "products-1"
      }
    },
    {
      "add": {
        "index": "products-2",
        "alias": "products"
      }
    }
  ]
}

相关问题