2017-05-16 60 views
0

我們有一個ATG-Endeca應用程序混合希臘語,英語數據的索引。索引的希臘語數據包含帶有重音的單詞。如果搜索條件沒有重音符,則它們與任何數據都不匹配(或者由於對字符沒有重音的角色發生自動重編碼而不匹配),這不是所期望的功能。 Dgidx標誌 - 星形摺疊配置不包括希臘字符映射(https://docs.oracle.com/cd/E29584_01/webhelp/mdex_basicDev/src/rbdv_chars_mapping.html)。擴展Endeca的變音符疊加映射

是否有可能擴展此oob功能思想屬性文件在Endeca方或nucleous或代碼?

回答

1

在你提供給它的文檔指出:

Dgidx支持映射Latin1的,拉丁語擴展A,和Windows CP1252索引中國際字符其簡單的ASCII碼值。

這表明希臘語不支持,因爲它不屬於任何這些字符集(我相信希臘語是拉丁語-7)。也就是說,假設每種語言都有自己的記錄或嘗試使用參數dgidxdgraph來實現全球語言,但您可以嘗試在記錄級別設置語言標誌(因爲您指出數據包含英語和希臘語)將影響諸如記錄或屬性不是全球語言的詞幹。

dgidx --lang el 
dgraph --lang el 

雖然我不確定它會根據原始聲明工作。

或者,您也可以實現使用自定義Accessor,它擴展了atg.repository.search.indexing.PropertyAccessorImpl類區分符號去除的過程(因爲你是指Nucleus的選擇,所以我假設你正在使用ATG /甲骨文商務部)。使用這個,你可以在索引中指定一個規範化的可搜索字段,它複製當前索引中的可搜索字段,但現在刪除了所有的變音符號。您在Accessor中應用的相同邏輯則需要作爲搜索條件中的預處理器應用,以便您對輸入進行規範化以匹配索引值。最後讓索引中的原始字段(帶有強調字符)僅顯示,並且標準化字段可搜索(但不顯示它們)。

結果將與您的標準化文本匹配,但缺點是您的數據已經重複,因此您的索引將更大。小數據集不是一個大問題。 OOTB功能(如詞幹)如何與標準化數據集一起運行也可能會產生影響。你必須用希臘語和英語進行一些測試,看看精確度和召回率是否受到不利影響。

+0

嗨Radimpe。感謝您的回答。希臘語oob是OLT,但我們需要鍵入和通配符,所以我們使用Latin-1。 –

+1

在這種情況下,將索引中的輸入數據標準化,然後在將其傳遞給提前輸入之前將其正常化,這可能會產生積極的結果。 – radimpe

+0

在提前輸入的formhandler中,我們使用了任何變音符號,並向ProductCatalogIndexingAdmin添加了一項服務,以便爲Endeca數據執行相同的操作。奇蹟般有效。 – bated