我有一長串單詞,我把它放入一個非常簡單的SOLR/Lucene數據庫中。我的目標是從列表中找出單詞查詢中的「相似」單詞,其中'相似性'具體理解爲(damerau)levensthein編輯距離。我瞭解SOLR爲拼寫建議提供了這樣的距離。如何配置solr/lucene來執行levenshtein編輯距離搜索?
在我SOLRschema.xml
,我已經配置了一個字段類型string
:
<fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
,我用它來定義一個字段
<field name='term' type='string' indexed='true' stored='true' required='true'/>
我想搜索這一領域,並有結果根據返回他們的levenshtein編輯距離。然而,當我運行像webspace~0.1
對調試和解釋SOLR查詢,該報告顯示,考慮一大堆走進計算分數,如:
"1582":"
1.1353534 = (MATCH) sum of:
1.1353534 = (MATCH) weight(term:webpage^0.8148148 in 1581), product of:
0.08618848 = queryWeight(term:webpage^0.8148148), product of:
0.8148148 = boost
13.172914 = idf(docFreq=1, maxDocs=386954)
0.008029869 = queryNorm
13.172914 = (MATCH) fieldWeight(term:webpage in 1581), product of:
1.0 = tf(termFreq(term:webpage)=1)
13.172914 = idf(docFreq=1, maxDocs=386954)
1.0 = fieldNorm(field=term, doc=1581)
清楚,我的應用程序,詞頻, idf
等是沒有意義的,因爲每個文檔只包含一個單詞。我試圖使用拼寫建議組件,但沒有設法使其返回實際的相似度分數。
有誰能夠提供線索如何配置SOLR執行與分數levensthein /哈羅 - 溫克勒/ n元搜索返回和沒有做額外的東西一樣tf
,idf
,boost
等收錄?某處是否有SOLR的裸機配置示例?我發現許多選項真的讓人望而生畏。
q=term:webspace~0.1&sort=strdist("webspace", term, edit) desc
只需要補充說,對於所有版本的Solr版本,對於所有版本都是如此,無需再進行每晚構建。 – ilinca 2014-11-24 14:55:16
strdist()將在Solr 4.10版本上工作? – iNikkz 2014-12-16 11:56:22