本篇內(nèi)容主要講解“Reindex API怎么從本地重建索引”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Reindex API怎么從本地重建索引”吧!
公司主營(yíng)業(yè)務(wù):成都網(wǎng)站建設(shè)、做網(wǎng)站、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶(hù)真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)建站是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶(hù)帶來(lái)驚喜。創(chuàng)新互聯(lián)建站推出黃岡免費(fèi)做網(wǎng)站回饋大家。
Reindex不會(huì)嘗試設(shè)置目標(biāo)索引。它不會(huì)復(fù)制源索引的設(shè)置信息。您應(yīng)該在運(yùn)行_reindex
操作之前設(shè)置目標(biāo)索引,包括設(shè)置映射,分片數(shù),副本等。
_reindex
的最基本形式只是將文檔從一個(gè)索引復(fù)制到另一個(gè)索引。下面將文檔從twitter
索引復(fù)制到new_twitter
索引中:
POST _reindex { "source": { "index": "twitter" }, "dest": { "index": "new_twitter" } } 這將會(huì)返回類(lèi)似以下的信息: { "took" : 147, "timed_out": false, "created": 120, "updated": 0, "deleted": 0, "batches": 1, "version_conflicts": 0, "noops": 0, "retries": { "bulk": 0, "search": 0 }, "throttled_millis": 0, "requests_per_second": -1.0, "throttled_until_millis": 0, "total": 120, "failures" : [ ] }
和_update_by_query一樣,_reindex
獲取源索引的快照,但其目標(biāo)索引必須是不同的索引,因此不會(huì)發(fā)生版本沖突。 dest
元素可以像索引API一樣進(jìn)行配置,以控制樂(lè)觀并發(fā)控制。只需將version_type 空著
(像上面一樣)或?qū)ersion_type設(shè)置為internal則
Elasticsearch強(qiáng)制性的將文檔轉(zhuǎn)儲(chǔ)到目標(biāo)中,覆蓋具有相同類(lèi)型和ID的任何內(nèi)容:
POST _reindex { "source": { "index": "twitter" }, "dest": { "index": "new_twitter", "version_type": "internal" } }
將version_type設(shè)置為external將導(dǎo)致Elasticsearch從源文件中保留版本,創(chuàng)建缺失的所有文檔,并更新在目標(biāo)索引中比源索引中版本更老的所有文檔: POST _reindex { "source": { "index": "twitter" }, "dest": { "index": "new_twitter", "version_type": "external" } }
設(shè)置op_type為create將導(dǎo)致_reindex僅在目標(biāo)索引中創(chuàng)建缺少的文檔。所有存在的文檔將導(dǎo)致版本沖突: POST _reindex { "source": { "index": "twitter" }, "dest": { "index": "new_twitter", "op_type": "create" } } 結(jié)果: { "took": 2015, "timed_out": false, "total": 6520, "updated": 0, "created": 885, "deleted": 0, "batches": 1, "version_conflicts": 115, "noops": 0, "retries": { "bulk": 0, "search": 0 }, "throttled_millis": 0, "requests_per_second": -1, "throttled_until_millis": 0, "failures": [ { "index": "sphinx-doctorinfo-20.11.11-162930", "type": "_doc", "id": "42", "cause": { "type": "version_conflict_engine_exception", "reason": "[_doc][42]: version conflict, document already exists (current version [1])", "index_uuid": "z1U5C2-TSXWQtAofQSSuHg", "shard": "0", "index": "sphinx-doctorinfo-20.11.11-162930" }, "status": 409 } } 默認(rèn)情況下,版本沖突將中止_reindex進(jìn)程,但您可以通過(guò)請(qǐng)求體設(shè)置"conflict":"proceed"來(lái)在沖突時(shí)進(jìn)行計(jì)數(shù): POST _reindex { "conflicts": "proceed", "source": { "index": "twitter" }, "dest": { "index": "new_twitter", "op_type": "create" } }
您可以通過(guò)向source添加type或添加query來(lái)限制文檔。下面會(huì)將kimchy發(fā)布的tweet復(fù)制到new_twitter中: POST _reindex { "source": { "index": "twitter", "type": "tweet", "query": { "term": { "user": "kimchy" } } }, "dest": { "index": "new_twitter" } }
source
中的index
和type
都可以是一個(gè)列表,允許您在一個(gè)請(qǐng)求中從大量的來(lái)源進(jìn)行復(fù)制。下面將從twitter
和blog
索引中的tweet
和post
類(lèi)型中復(fù)制文檔。它也包含twitter
索引中post
類(lèi)型以及blog
索引中的tweet
類(lèi)型。如果你想更具體,你將需要使用query
。它也沒(méi)有努力處理ID沖突。目標(biāo)索引將保持有效,但由于迭代順序定義不正確,預(yù)測(cè)哪個(gè)文檔可以保存下來(lái)是不容易的。
POST _reindex { "source": { "index": ["twitter", "blog"], "type": ["tweet", "post"] }, "dest": { "index": "all_together" } }
還可以通過(guò)設(shè)置大小限制處理的文檔的數(shù)量。下面只會(huì)將單個(gè)文檔從twitter
復(fù)制到new_twitter
:
POST _reindex { "size": 1, "source": { "index": "twitter" }, "dest": { "index": "new_twitter" } }
如果你想要從twitter
索引獲得一個(gè)特定的文檔集合你需要排序。排序使?jié)L動(dòng)效率更低,但在某些情況下它是值得的。如果可能,更喜歡更多的選擇性查詢(xún)size
和sort
。這將從twitter復(fù)
制10000
個(gè)文檔到new_twitter
:
POST _reindex { "size": 10000, "source": { "index": "twitter", "sort": { "date": "desc" } }, "dest": { "index": "new_twitter" } } source部分支持搜索請(qǐng)求中支持的所有元素。例如,只使用原始文檔的一部分字段,使用源過(guò)濾如下所示: POST _reindex { "source": { "index": "twitter", "_source": ["user", "tweet"] }, "dest": { "index": "new_twitter" } }
像update_by_query
一樣,_reindex
支持修改文檔的腳本。與_update_by_query
不同,腳本允許修改文檔的元數(shù)據(jù)。此示例修改了源文檔的版本:
POST _reindex { "source": { "index": "twitter" }, "dest": { "index": "new_twitter", "version_type": "external" }, "script": { "inline": "if (ctx._source.foo == 'bar') {ctx._version++; ctx._source.remove('foo')}", "lang": "painless" } } 就像在_update_by_query中一樣,您可以設(shè)置ctx.op來(lái)更改在目標(biāo)索引上執(zhí)行的操作: noop 如果您的腳本決定不必進(jìn)行任何更改,請(qǐng)?jiān)O(shè)置 ctx.op ="noop" 。這將導(dǎo)致_update_by_query 從其更新中忽略該文檔。這個(gè)沒(méi)有操作將被報(bào)告在響應(yīng)體的 noop 計(jì)數(shù)器上。 delete 如果您的腳本決定必須刪除該文檔,請(qǐng)?jiān)O(shè)置ctx.op="delete"。刪除將在響應(yīng)體的 deleted 計(jì)數(shù)器中報(bào)告。 將ctx.op設(shè)置為其他任何內(nèi)容都是錯(cuò)誤。在ctx中設(shè)置任何其他字段是一個(gè)錯(cuò)誤。 想想可能性!只要小心點(diǎn),有很大的力量...你可以改變: _id _type _index _version _routing _parent 將_version設(shè)置為null或從ctx映射清除就像在索引請(qǐng)求中不發(fā)送版本一樣。這將導(dǎo)致目標(biāo)索引中的文檔被覆蓋,無(wú)論目標(biāo)版本或_reindex請(qǐng)求中使用的版本類(lèi)型如何。
默認(rèn)情況下,如果_reindex
看到具有路由的文檔,則路由將被保留,除非腳本被更改。您可以根據(jù)dest
請(qǐng)求設(shè)置routing
來(lái)更改:
keep:將批量請(qǐng)求的每個(gè)匹配項(xiàng)的路由設(shè)置為匹配上的路由。默認(rèn)值。
discard:將批量請(qǐng)求的每個(gè)匹配項(xiàng)的路由設(shè)置為null。
=<某些文本>:將批量請(qǐng)求的每個(gè)匹配項(xiàng)的路由設(shè)置為`=`之后的文本。
例如,您可以使用以下請(qǐng)求將source
索引的所有公司名稱(chēng)為cat
的文檔復(fù)制到路由設(shè)置為cat
的dest
索引。
POST _reindex { "source": { "index": "source", "query": { "match": { "company": "cat" } } }, "dest": { "index": "dest", "routing": "=cat" } }
默認(rèn)情況下,_reindex
批量滾動(dòng)處理大小為1000
.您可以在source
元素中指定size
字段來(lái)更改批量處理大?。?/p>
POST _reindex { "source": { "index": "source", "size": 100 #batch size 這里在機(jī)器資源允許的條件下,搞大點(diǎn) }, "dest": { "index": "dest", "routing": "=cat" } } 1.ES是非實(shí)時(shí)的。Elasticsearch中,Index的實(shí)時(shí)性是由refresh控制的,默認(rèn)是1s,最快可到100ms,那么也就意味著Index doc成功后,需要等待一秒鐘后才可以被搜索到。 2.reindex是耗費(fèi)性能的。借助:scroll+bulk實(shí)現(xiàn)。 優(yōu)化建議:重索引下建議這個(gè)size設(shè)置大點(diǎn)
Reindex也可以使用[Ingest Node]功能來(lái)指定pipeline
, 就像這樣:
POST _reindex { "source": { "index": "source" }, "dest": { "index": "dest", "pipeline": "some_ingest_pipeline" } }
Reindex支持從遠(yuǎn)程Elasticsearch群集重建索引:
POST _reindex { "source": { "remote": { "host": "http://otherhost:9200", "username": "user", "password": "pass" }, "index": "source", "query": { "match": { "test": "data" } } }, "dest": { "index": "dest" } }
host
參數(shù)必須包含scheme
,host
和port
(例如 https:// otherhost:9200
)。用戶(hù)名和密碼參數(shù)是可選的,當(dāng)它們存在時(shí),索引將使用基本認(rèn)證連接到遠(yuǎn)程Elasticsearch節(jié)點(diǎn)。使用基本認(rèn)證時(shí)請(qǐng)務(wù)必使用https
,密碼將以純文本格式發(fā)送。
必須在elasticsearch.yaml
中使用reindex.remote.whitelist
屬性將遠(yuǎn)程主機(jī)明確列入白名單。它可以設(shè)置為允許的遠(yuǎn)程host
和port
組合的逗號(hào)分隔列表(例如otherhost:9200,another:9200,127.0.10.*:9200,localhost:*
)。白名單忽略了scheme
——僅使用主機(jī)和端口。
此功能應(yīng)適用于您可能找到的任何版本的Elasticsearch的遠(yuǎn)程群集。這應(yīng)該允許您從任何版本的Elasticsearch升級(jí)到當(dāng)前版本,通過(guò)從舊版本的集群重新建立索引。
要啟用發(fā)送到舊版本Elasticsearch的查詢(xún),query
參數(shù)將直接發(fā)送到遠(yuǎn)程主機(jī),無(wú)需驗(yàn)證或修改。
來(lái)自遠(yuǎn)程服務(wù)器的重新索引使用默認(rèn)為最大大小為100mb
的堆棧緩沖區(qū)。如果遠(yuǎn)程索引包含非常大的文檔,則需要使用較小的批量大小。下面的示例設(shè)置非常非常小的批量大小10
。
POST _reindex { "source": { "remote": { "host": "http://otherhost:9200" }, "index": "source", "size": 10, "query": { "match": { "test": "data" } } }, "dest": { "index": "dest" } }
也可以使用socket_timeout
字段在遠(yuǎn)程連接上設(shè)置socket
的讀取超時(shí),并使用connect_timeout
字段設(shè)置連接超時(shí)。兩者默認(rèn)為三十秒。此示例將套接字讀取超時(shí)設(shè)置為一分鐘,并將連接超時(shí)設(shè)置為十秒:
POST _reindex { "source": { "remote": { "host": "http://otherhost:9200", "socket_timeout": "1m", "connect_timeout": "10s" }, "index": "source", "query": { "match": { "test": "data" } } }, "dest": { "index": "dest" } }
除了標(biāo)準(zhǔn)參數(shù)像pretty
之外,“Reindex API”還支持refresh
、wait_for_completion
、wait_for_active_shards
、timeout
以及requests_per_second
。
發(fā)送refresh
將在更新請(qǐng)求完成時(shí)更新索引中的所有分片。這不同于 Index API 的refresh
參數(shù),只會(huì)導(dǎo)致接收到新數(shù)據(jù)的分片被索引。
如果請(qǐng)求包含wait_for_completion=false
,那么Elasticsearch將執(zhí)行一些預(yù)檢檢查、啟動(dòng)請(qǐng)求、然后返回一個(gè)任務(wù),可以與Tasks API一起使用來(lái)取消或獲取任務(wù)的狀態(tài)。Elasticsearch還將以.tasks/task/${taskId}
作為文檔創(chuàng)建此任務(wù)的記錄。這是你可以根據(jù)是否合適來(lái)保留或刪除它。當(dāng)你完成它時(shí),刪除它可以讓Elasticsearch回收它使用的空間。
wait_for_active_shards
控制在繼續(xù)請(qǐng)求之前必須有多少個(gè)分片必須處于活動(dòng)狀態(tài),詳見(jiàn)這里。timeout
控制每個(gè)寫(xiě)入請(qǐng)求等待不可用分片變成可用的時(shí)間。兩者都能正確地在Bulk API中工作。
requests_per_second
可以設(shè)置為任何正數(shù)(1.4,6,1000等),來(lái)作為“delete-by-query”每秒請(qǐng)求數(shù)的節(jié)流閥數(shù)字,或者將其設(shè)置為-1
以禁用限制。節(jié)流是在批量批次之間等待,以便它可以操縱滾動(dòng)超時(shí)。等待時(shí)間是批次完成的時(shí)間與request_per_second * requests_in_the_batch
的時(shí)間之間的差異。由于分批處理沒(méi)有被分解成多個(gè)批量請(qǐng)求,所以會(huì)導(dǎo)致Elasticsearch創(chuàng)建許多請(qǐng)求,然后等待一段時(shí)間再開(kāi)始下一組。這是“突發(fā)”而不是“平滑”。默認(rèn)值為-1。
JSON響應(yīng)類(lèi)似如下:
{ "took" : 639, "updated": 0, "created": 123, "batches": 1, "version_conflicts": 2, "retries": { "bulk": 0, "search": 0 } "throttled_millis": 0, "failures" : [ ] }
took:從整個(gè)操作的開(kāi)始到結(jié)束的毫秒數(shù)。
updated:成功更新的文檔數(shù)。
upcreateddated:成功創(chuàng)建的文檔數(shù)。
batches:通過(guò)查詢(xún)更新的滾動(dòng)響應(yīng)數(shù)量。
version_conflicts:根據(jù)查詢(xún)更新時(shí),版本沖突的數(shù)量。
retries:根據(jù)查詢(xún)更新的重試次數(shù)。bluk 是重試的批量操作的數(shù)量,search 是重試的搜索操作的數(shù)量。
throttled_millis:請(qǐng)求休眠的毫秒數(shù),與`requests_per_second`一致。
failures:失敗的索引數(shù)組。如果這是非空的,那么請(qǐng)求因?yàn)檫@些失敗而中止。請(qǐng)參閱 conflicts 來(lái)如何防止版本沖突中止操作。
您可以使用Task API獲取任何正在運(yùn)行的重建索引請(qǐng)求的狀態(tài):
GET _tasks?detailed=true&actions=*/update/byquery 響應(yīng)會(huì)類(lèi)似如下: { "nodes" : { "r1A2WoRbTwKZ516z6NEs5A" : { "name" : "r1A2WoR", "transport_address" : "127.0.0.1:9300", "host" : "127.0.0.1", "ip" : "127.0.0.1:9300", "attributes" : { "testattr" : "test", "portsfile" : "true" }, "tasks" : { "r1A2WoRbTwKZ516z6NEs5A:36619" : { "node" : "r1A2WoRbTwKZ516z6NEs5A", "id" : 36619, "type" : "transport", "action" : "indices:data/write/reindex", "status" : { //① "total" : 6154, "updated" : 3500, "created" : 0, "deleted" : 0, "batches" : 4, "version_conflicts" : 0, "noops" : 0, "retries": { "bulk": 0, "search": 0 }, "throttled_millis": 0 }, "description" : "" } } } } }
① 此對(duì)象包含實(shí)際狀態(tài)。它就像是響應(yīng)json,重要的添加total
字段。 total
是重建索引希望執(zhí)行的操作總數(shù)。您可以通過(guò)添加的updated
、created
和deleted
的字段來(lái)估計(jì)進(jìn)度。當(dāng)它們的總和等于total
字段時(shí),請(qǐng)求將完成。
使用任務(wù)id可以直接查找任務(wù):
GET /_tasks/taskId:1
這個(gè)API的優(yōu)點(diǎn)是它與wait_for_completion=false
集成,以透明地返回已完成任務(wù)的狀態(tài)。如果任務(wù)完成并且wait_for_completion=false
被設(shè)置,那么它將返回results
或error
字段。此功能的成本是wait_for_completion=false
在.tasks/task/${taskId}
創(chuàng)建的文檔,由你自己刪除該文件。
所有重建索引都能使用Task Cancel API取消:
POST _tasks/task_id:1/_cancel 可以使用上面的任務(wù)API找到task_id。
取消應(yīng)盡快發(fā)生,但可能需要幾秒鐘。上面的任務(wù)狀態(tài)API將繼續(xù)列出任務(wù),直到它被喚醒取消自身。
request_per_second
的值可以在通過(guò)查詢(xún)刪除時(shí)使用_rethrottle
API更改:
POST _update_by_query/task_id:1/_rethrottle?requests_per_second=-1 可以使用上面的任務(wù)API找到task_id。
就像在_update_by_query
API中設(shè)置它一樣,request_per_second
可以是-1
來(lái)禁用限制,或者任何十進(jìn)制數(shù)字,如1.7或12,以節(jié)制到該級(jí)別。加速查詢(xún)的會(huì)立即生效,但是在完成當(dāng)前批處理之后,減慢查詢(xún)的才會(huì)生效。這樣可以防止?jié)L動(dòng)超時(shí)。
_reindex
可用于使用重命名的字段構(gòu)建索引的副本。假設(shè)您創(chuàng)建一個(gè)包含如下所示的文檔的索引:
POST test/test/1?refresh { "text": "words words", "flag": "foo" } 但是你不喜歡這個(gè)flag名稱(chēng),而是要用tag替換它。 _reindex可以為您創(chuàng)建其他索引: POST _reindex { "source": { "index": "test" }, "dest": { "index": "test2" }, "script": { "inline": "ctx._source.tag = ctx._source.remove(\"flag\")" } } 現(xiàn)在你可以得到新的文件: GET test2/test/1 { "found": true, "_id": "1", "_index": "test2", "_type": "test", "_version": 1, "_source": { "text": "words words", "tag": "foo" } } 或者你可以通過(guò)tag進(jìn)行任何你想要的搜索。
重建索引支持滾動(dòng)切片,您可以相對(duì)輕松地手動(dòng)并行化處理:
POST _reindex { "source": { "index": "twitter", "slice": { "id": 0, "max": 2 } }, "dest": { "index": "new_twitter" } } POST _reindex { "source": { "index": "twitter", "slice": { "id": 1, "max": 2 } }, "dest": { "index": "new_twitter" } } 您可以通過(guò)以下方式驗(yàn)證: GET _refresh POST new_twitter/_search?size=0&filter_path=hits.total 其結(jié)果一個(gè)合理的total像這樣: { "hits": { "total": 120 } }
你還可以讓重建索引使用切片的_uid
來(lái)自動(dòng)并行的滾動(dòng)切片。
POST _reindex?slices=5&refresh { "source": { "index": "twitter" }, "dest": { "index": "new_twitter" } } 您可以通過(guò)以下方式驗(yàn)證: POST new_twitter/_search?size=0&filter_path=hits.total 其結(jié)果一個(gè)合理的total像這樣: { "hits": { "total": 120 } }
將slices
添加到_reindex
中可以自動(dòng)執(zhí)行上述部分中使用的手動(dòng)過(guò)程,創(chuàng)建子請(qǐng)求,這意味著它有一些怪癖:
您可以在Task API中看到這些請(qǐng)求。這些子請(qǐng)求是具有slices
請(qǐng)求任務(wù)的“子”任務(wù)。
獲取slices
請(qǐng)求任務(wù)的狀態(tài)只包含已完成切片的狀態(tài)。
這些子請(qǐng)求可以單獨(dú)尋址,例如取消和重置節(jié)流閥。
slices
的重置節(jié)流閥請(qǐng)求將按相應(yīng)的重新計(jì)算未完成的子請(qǐng)求。
slices
的取消請(qǐng)求將取消每個(gè)子請(qǐng)求。
由于slices
的性質(zhì),每個(gè)子請(qǐng)求將不會(huì)獲得完全均勻的文檔部分。所有文件都將被處理,但有些片可能比其他片大。預(yù)期更大的切片可以有更均勻的分布。
帶有slices
請(qǐng)求的request_per_second
和size
的參數(shù)相應(yīng)的分配給每個(gè)子請(qǐng)求。結(jié)合上述關(guān)于分布的不均勻性,您應(yīng)該得出結(jié)論,使用切片大小可能不會(huì)導(dǎo)致正確的大小文檔為_reindex
。
每個(gè)子請(qǐng)求都會(huì)獲得源索引的略有不同的快照,盡管這些都是大致相同的時(shí)間。
在這一點(diǎn)上,我們圍繞要使用的slices
數(shù)量提供了一些建議(比如手動(dòng)并行化時(shí),切片API中的max
參數(shù)):
不要使用大的數(shù)字,500
就能造成相當(dāng)大的CPU抖動(dòng)。
從查詢(xún)性能的角度來(lái)看,在源索引中使用分片數(shù)量的一些倍數(shù)更為有效。
在源索引中使用完全相同的分片是從查詢(xún)性能的角度來(lái)看效率最高的。
索引性能應(yīng)在可用資源之間以slices
數(shù)量線(xiàn)性擴(kuò)展。
索引或查詢(xún)性能是否支配該流程取決于許多因素,如正在重建索引的文檔和進(jìn)行reindexing
的集群。
您可以使用_reindex
與Painless組合來(lái)重新每日編制索引,以將新模板應(yīng)用于現(xiàn)有文檔。 假設(shè)您有由以下文件組成的索引:
PUT metricbeat-2016.05.30/beat/1?refresh {"system.cpu.idle.pct": 0.908} PUT metricbeat-2016.05.31/beat/1?refresh {"system.cpu.idle.pct": 0.105}
metricbeat-*
索引的新模板已經(jīng)加載到Elaticsearch中,但它僅適用于新創(chuàng)建的索引。Painless可用于重新索引現(xiàn)有文檔并應(yīng)用新模板。
下面的腳本從索引名稱(chēng)中提取日期,并創(chuàng)建一個(gè)附帶有-1
的新索引。來(lái)自metricbeat-2016.05.31
的所有數(shù)據(jù)將重新索引到metricbeat-2016.05.31-1
。
POST _reindex { "source": { "index": "metricbeat-*" }, "dest": { "index": "metricbeat" }, "script": { "lang": "painless", "inline": "ctx._index = 'metricbeat-' + (ctx._index.substring('metricbeat-'.length(), ctx._index.length())) + '-1'" } }
來(lái)自上一個(gè)度量索引的所有文檔現(xiàn)在可以在*-1
索引中找到。
GET metricbeat-2016.05.30-1/beat/1 GET metricbeat-2016.05.31-1/beat/1
以前的方法也可以與更改字段的名稱(chēng)一起使用,以便將現(xiàn)有數(shù)據(jù)加載到新索引中,但如果需要,還可以重命名字段。
Reindex可用于提取用于測(cè)試的索引的隨機(jī)子集:
POST _reindex { "size": 10, "source": { "index": "twitter", "query": { "function_score" : { "query" : { "match_all": {} }, "random_score" : {} } }, "sort": "_score" //① }, "dest": { "index": "random_twitter" } }
Reindex默認(rèn)按_doc
排序,所以random_score
不會(huì)有任何效果,除非您將排序重寫(xiě)為_score
。
到此,相信大家對(duì)“Reindex API怎么從本地重建索引”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢(xún),關(guān)注我們,繼續(xù)學(xué)習(xí)!