2013-10-28 13 views
2

我們使用Liferay作爲經典CMS,意思是我們使用Web內容文章撰寫頁面。 Liferay的內部搜索存在問題我還找不到合適的答案:搜索結果:如何僅顯示頁面,而不顯示不同的內容項目?

因爲網頁內容文章幾乎只是頁面的構建塊,我們不希望搜索將它們顯示爲不同的項目。用戶應該只能獲得包含搜索關鍵字的的列表,包括放入此頁面的所有文章。

同時,我們可以看到兩種不同的方法,並都配有一定的問題,我們解決不了還時刻:

理念1

我們修改日記索引,並嘗試獲得的所有URL頁面(如何?)文章已放置在哪裏。然後我們將它們添加到要編入索引的文檔中。在搜索結果中,我們可以訪問這些網址並收集它們。最後,我們確保每個網址只顯示一次。

理念2

在某一點上的Liferay其發送到瀏覽器之前呈現整個頁面。如果我們以某種方式可以將索引器放在那裏,我們可以索引整個頁面。然後,我們可以將搜索限制在特殊的「頁面文檔」中。獲取完全呈現的頁面將是這裏的主要問題,因爲要麼我們必須運行爬網程序來頻繁地觸發此索引,要麼我們需要找到一種方法來觸發從索引器內部或類似索引器中進行頁面呈現。

我一直帶着這個問題已經有相當長一段時間了,仍然找不到一個足夠花時間去嘗試它的想法。如果你們中的任何一個人對這兩個想法有一些意見或者可能採用完全不同的方法,我將非常感激。

+0

我剛剛在另一個問題中發現[這個答案由Olaf Kock](http://stackoverflow.com/questions/17729666/liferay-search-results)。如果連Liferay員工都建議使用外部工具進行全頁面索引,那麼可能值得考慮採用此路線...... –

回答

1

我只是回答我自己,因爲現在我們找到了合適的解決方案來解決我們的問題:

除了默認的搜索門戶也有一個「網頁內容搜索Portlet」隨Liferay一起發貨。它似乎已經成爲Liferay的一部分,但現在有點難以找到,因爲幾乎沒有任何文檔可以找到它(我只找到了Liferay wiki page,這根本就不是什麼)。它僅在網頁內容文章中進行搜索,並顯示鏈接到頁面,而不僅僅是鏈接和文章的單獨視圖。但是,它的配置選項比默認搜索portlet少得多。幾乎所有它允許改變的是,文章是否實際上必須放置在至少一個頁面上以顯示在結果中。

因此,不需要任何類型的自定義索引器或任何其他「黑客」......我們需要做的就是使用正確的portlet。我們只需要編寫一個鉤子來改變結果頁面的外觀。

0

你問的是有趣的,但你的想法是在錯誤的方向。

特別想法2它特別錯誤,因爲在呈現頁面的同時您無法做索引工作。只考慮性能。

在Liferay頁面和資產不直接鏈接:頁面有portlet和portlet顯示資產(web內容和更多)。

Liferay索引指的是掃描資產內容,而不是指資產的顯示結果。考慮權限:同一頁面可以顯示不同的內容取決於看起來的用戶。

再見

+0

這就是爲什麼我要求......這是一個特別棘手的要求。我剛剛在數據庫中找到了JournalContentSearch表,它似乎將期刊文章鏈接到頁面(layoutId)。所以也許在網頁內容和網頁之間建立聯繫並不像我最初想象的那麼困難? –

+0

我認爲達成目標的唯一方法就是構建自定義搜索插件。這個插件使用索引器進行搜索,然後過濾結果以收集頁面列表。可能? –

+0

-1:這個慾望根本不是一個錯誤的想法。顯示不符合上下文的內容很容易損害用戶對您網站的印象。示例:包含引用視頻元素的期刊文章的頁面。如果用戶發現期刊文章而不是網頁,他們會立即認爲網站出現問題。 OP的答案有效。解決它的其他方法是實現自定義搜索和/或使用SEO設置來向頁面添加「上下文」。 –