英文:
How to Management Elasticsearch Index data
问题
我正在使用Elasticsearch搜索产品。
每天对产品信息进行完整索引。
我正在删除并重新创建索引以进行清洗索引,但我不确定如何处理那个时候的产品搜索。
在进行完整清洗索引时,如何处理查询的标准方式如何?
在进行完整清洗索引时,我考虑在创建全新索引后通过状态检查来逻辑处理它,但我想知道是否有更好的方式。
英文:
I am using Elasticsearch to search for products.
Perform full indexing of product information on a daily basis.
I am deleting and recreating the index for clean indexing, but I am not sure how to handle product search at that time.
How about the standard way of handling queries at the time of clean full indexing?
During clean full indexing, I thought about processing it logically through a status check after creating a completely new index, but I wonder if there is a better way.
答案1
得分: 1
正确的做法是使用别名。您有当前的产品索引,让我们称之为 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"
}
}
]
}
英文:
The correct way of doing it is by using an alias. You have the current product index, let's call it products-1
and it is aliased with the name products
. All your search queries go through the alias name and not through the index name.
When you need to reindex your products, you do so but in a new index called products-2
and when you're done indexing and tested that everything went fine, you just switch the alias using the following command and your search queries will be carried out uninterrupted:
POST _aliases
{
"actions": [
{
"remove": {
"index": "products-1",
"alias": "products"
}
},
{
"add": {
"index": "products-2",
"alias": "products"
}
}
]
}
You can then go ahead and delete the index or if you're confident you can do it in a single step like this:
POST _aliases
{
"actions": [
{
"remove_index": {
"index": "products-1"
}
},
{
"add": {
"index": "products-2",
"alias": "products"
}
}
]
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论