簡體   English   中英

Elasticsearch 搜索同簇不同字段的不同索引

[英]Elasticsearch search on different index with different field of same cluster

我需要幫助來搜索具有不同字段的同一集群的不同索引。 例如:如果我有一個集群名稱演示,其中有 2 個索引menu_itemspurchase_orders 兩個索引都包含要搜索的不同列。 索引menu_items包含“label”字段,索引purchase_orders包含“id”和“supplier_reference”字段。

 $params = [ 'index' => 'menu_items,purchase_orders', '_source' => 'label,id,supplier_reference', 'body' => [ 'query' => [ 'bool' => [ 'must' => [ 'multi_match' => [ 'query' => $keyword, 'type' => 'bool_prefix', 'fields' => ['label', 'id', 'supplier_reference'], ], ], ], ], ], ];

現在,如果我正在搜索在兩個索引中都可用的任何術語“3312”,那么這個查詢工作正常,而另一個術語“供應商”在另一個索引中不可用,當時我得到一個錯誤。 有人可以幫忙嗎? 我怎樣才能做到這一點? 我們如何在兩個或多個不同的索引中找到字段?

我面臨如下所述的問題,作為我在這里找到的解決方案,我們需要進行適當的映射。

與映射相關,Elasticsearch 具有檢測文檔字段類型並生成模式並將其應用於整個索引的內置功能。 但這會導致錯誤,因為兩個索引對於同一字段具有不同的數據類型。 例如:如果 index1 具有 long 數據類型的 id 字段,而 index2 具有字符串數據類型的 id 字段。 當時搜索操作給出了與我在問題中描述的 id 字段相關的搜索錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM