我有一個包含多個字段的〜50K文檔的索引。其中一個領域是「內容」,其中包含一個文本(可以只是幾個字或非常大的文章)。 在整個文檔中,關於「內容」字段有很多重複項。 我想添加一個group_id字段,它將指示它屬於哪個「content」重複文檔組。在elasticsearch中查找確切完整的文本匹配
我嘗試使用「匹配」和「more_like_this」,但他們似乎沒有返回確切的重複項,而是一個接近重複的重複項。
舉例: 考慮以下指標:
{ "author": "name1", "content": "text1" }, { "author": "name2", "content": "text2" } { "author": "name3", "content": "text1" } { "author": "name4", "content": "text2" } { "author": "name5", "content": "text3" }
我想獲得:
{ "author": "name1", "content": "text1", "group_id: 0 }, { "author": "name2", "content": "text2", "group_id: 1 } { "author": "name3", "content": "text1", "group_id: 0 } { "author": "name4", "content": "text2", "group_id: 1 } { "author": "name5", "content": "text3", "group_id: 2 }
謝謝!
似乎是一個好主意,我會嘗試。順便說一句,爲什麼保持摘要數字而不是字符串(比如md5)是有意義的? – Eitan
任何摘要都從數字開始 - 它是一堆位(md5的情況下爲128位) - 將它編碼爲字符串表示形式以使其更具可讀性/可打印性。所以保持數值只是表示值的更緊湊的方式 - 更有效地存儲,索引和搜索。以Murmur3的32位變體爲例 - 數字存儲需要32位(即4個字節或一個長),編碼成最緊湊*可打印*表示的字符串爲base85(40位,5字節),隨後由base64(44位填充到48,因爲它是6個字節)。 –
非常感謝您的回答和細節! (我的投票還沒有統計) – Eitan