2014-12-22 64 views
0

我是新手Solr。我想加入 a 自定義比較器類在Solr。我還需要在我的自定義類中使用字段 - 術語和計數,這是我在我的schema.xml中定義的。索引文檔的在Solr中添加自定義比較類的類

結構:

"docs": [ 
     { 
     "count": 98, 
     "term": "age", 
     }, 
     { 
     "count": 6, 
     "term": "age assan", 
     }, 
     { 
     "count": 5, 
     "term": "age but", 
     }, 
     { 
     "count": 10, 
     "term": "age salman", 
     }] 

我已存儲的n-gram長期和他們的計數Solr的頻率由自己需要。我希望我的計數頻率爲,這是我爲每個術語定義的。而那項和計數,我需要與頻率(計數),然後使用,並希望排序編輯距離,我需要在比較類創建自己的類執行或有別的東西這有助於我。請分享..

我該怎麼做。請任何幫助。 謝謝。

+0

爲什麼你需要添加一個自定義的比較?你有什麼嘗試?爲什麼它不工作? – MatsLindh

+0

@MatsLindh:我想使用名稱自己定義的字段 - 「term和count」。 「Term」包含一個單詞 - 「年齡」,「count」包含 - 單詞的頻率。我不想'使用'solr預先定義的頻率'值。我必須用我自己的符合我的要求。如何開始構建自己的類「comparatorClass''。 – iNikkz

+0

@iNikkz你能用一些例子來說明你的問題嗎?更好地編輯更多細節的問題。 – sidgate

回答

2

您應該可以在不執行自定義相似類的情況下執行此操作。第一個要求是(從你的描述)直接對計數值進行排序,而後者可以通過排序strdist()函數的值來實現。您還可以通過使用多個函數將這些值相互乘以或加權in a single sort statement

如果你確實需要建立自己的分數器(我認爲你不需要從你的描述中做出) - 這些通常是爲了探索比tf/idf,bm25等其他排名算法更大的在谷歌搜索,通過預先製作,易於採用的解決方案爲您提供了許多資源。我特別想指出的:「這是核選項」,在Build Your Own Custom Lucene Query and Scorer

除非你只是想教育經驗,建立一個自定義Lucene的查詢應該是搜索相關的「核選項」。它非常繁瑣,並且有許多細節。如果你真的考慮這個解決一個真正的問題,你已經走了下面的路徑[...]

+0

我想將課程添加到Solr中。 – iNikkz

+0

是的,我們從你的問題理解,但爲什麼? – MatsLindh

+0

正在拼寫更正。我收到拼寫錯誤的單詞的建議,所以,建議就像這樣** word + freq **。我在我的文檔中編制了ngrams(1到5),其中每個文檔都包含可能是1到5個字的術語(ngram),以及根據我的需要插入的頻率(計數)。我已經完成了schema.xml和solrconfig.xml的配置。現在,任何單詞的建議都是以schema.xml配置(ShingleFilterFactory)爲基礎的。但我想用我自己定義的頻率(計數)而不是建議的頻率。那麼,我該怎麼做? – iNikkz