2016-03-16 31 views
2

我目前正在通過自定義ComputedFieldProfile Cards索引應用於項目,位於Tracking字段中。這很好,我可以檢索結果基於它匹配我正在尋找的配置文件卡。索引Sitecore配置文件卡及其值

但是我想要考慮Profile Cardvalue。即結果在航空Profile Card中有10的項目應該比在航空Profile Card中具有5的另一個結果更相關。

實現此目的的一個顯而易見的方法是通過Boosting,但這需要發生在與Search時間相反的Indexing時間。

有沒有辦法在基於字段值的索引時間應用boosting?還是有另一種方式?

可以選擇按配置文件卡值進行搜索後對結果進行排序,但這不是非常高效,而是將該開銷置於索引時間。

+0

我前幾天在做這件事。我正在嘗試使用Lucene Sub Documents,但我不確定這是否會起作用。也考慮到科科作爲一個可能的選擇。我還沒有提出解決方案,但我正在創建一個僅索引項目,配置文件卡和值的新索引。我將把每個配置文件和值作爲分隔值推入單個字段。這樣,我就可以取得我的結果,提取配置文件值並即時計算排名。 –

+0

我認爲你和我一樣走在同一條路上。爲了幫助你,我想引用我的博客文章,在那裏我從跟蹤器性能獲取配置文件。 http://www.waitingimpatiently.com/parsing-the-__tracker-object-for-indexing/ –

+0

我曾考慮過在管道分隔符的單個字段中使用配置文件ID和值,這是您的博客使用的。你是怎麼找到的?感謝分享這篇文章,任何有助於提升性能的東西:) –

回答

0

我會通過創建一個自定義規則來根據它的配置文件卡的值來提升每個索引項目。

你可以看到下面創建提升規則的例子:

編輯:注意,這種方法將在所適用拉動了項目所有搜索查詢在你所有的索引中。對於所有索引時間方法而言,這實際上是正確的。所以你可能想要隨着查詢時間提升。

+0

我曾考慮過基於規則的提升,但並沒有太多的資源解釋如何構建規則,而不是創建規則項目。我總是可以反編譯現有的代碼來獲得一個想法 –