2012-02-21 35 views
1

獅身人面像手動says該索引合併應該保持的舊關鍵字新的沿:獅身人面像:索引器 - 合併到底是什麼?

但是請注意,「舊」的關鍵字將不會自動在這種情況下刪除。例如,如果在DSTINDEX中存在與文檔123相關聯的關鍵字「old」,並且在SRCINDEX中與關聯關鍵字「new」關聯,那麼文檔123將在合併後由兩個關鍵字找到。

我無法複製此內容。

  1. 我們與索引ID 1和文字 '一' 的文件main
  2. 文本從 '一' 的數據庫表更改爲 '兩化'
  3. indexer --rotate delta
  4. indexer --rotate --merge main delta
  5. 等待爲searchd重新加載索引
  6. 現在我們可以通過SELECT id FROM main WHERE match('two')找到文檔1,但match('one')找不到任何內容。

來源兩個指數基本上定義爲:

sql_query = SELECT id, text FROM tbl 

我自己也嘗試通過sql_joined_field和合並指定的關鍵字不保留舊的關鍵字從它。

這是否意味着手冊是錯誤的?假設如果SRCINDEX具有關於ID(屬性和文本關鍵字)的信息,合併過程將丟棄DSTINDEX對該ID所具有的所有內容並將其替換爲新信息,是否安全?

回答

2

我問安德烈阿克森諾夫(獅身人面像的創造者)這件事。他說,如果索引docinfo是extern,他們現在在合併時清除重複的id。

所以是的,這是一個文檔中的錯誤。

+0

太棒了!這正是我所希望的。非常感謝! – 2012-02-24 12:08:11

0

如果Sphinx從搜索結果中刪除時發現重複的ID,那麼您的Sphinx只返回唯一的ID。 這是什麼原因,您沒有在搜索結果中看到它們。

+0

你是什麼意思,重複的ID在哪裏?合併時?所以手冊是錯誤的? – 2012-02-22 15:31:13

+0

你說你在索引main和delta中都有id 1,所以在將delta合併到main之後,主索引中會有ID 1重複。但是,當您執行Sphinx消除的搜索重複ID時,您只能看到爲id 1找到的一個結果。手動沒有錯。 :) – 2012-02-23 10:47:46

+0

看來我們在這裏討論不同的東西。當然,我不希望同一個ID返回兩次。問題是,當我搜索舊關鍵字時,我沒有看到任何結果。 – 2012-02-23 13:18:18