我試圖修改來自imotov的餘弦相似性腳本Github。在他的腳本中,他的docWeightSum只採用查詢中術語的頻率(tf),而不是文檔中的所有術語。Elasticsearch本地腳本 - 評估索引文檔的字段值
以下面的例子。 docWeightSum將爲9(「I」4,「am」4,「Sam」1)。我想要的docWeightSum是10(爲「火腿」添加1),因爲我想用兩個向量的大小對點積進行歸一化。
DOC: 「我是我火腿山姆」
查詢: 「山姆我是」
所以其實我有2個問題,因爲我的索引文件到Elasticsearch這樣的:
POST /termscore/doc
{
"text": "I am am I ham",
"docWeightSum": 9
}
- 是否有存在的API來獲取所有TF的平方和每個索引的文檔,或獲得TF在條款不在查詢中的文檔?如果不是,那我該如何計算這個和平方?
- 如果我預先計算每個文檔的tf的和平方,並將其與文檔內容一起放入Elasticsearch中(如上例所示),那麼在計算分數時,如何訪問該「docWeightSum」值?
我使用Elasticsearch 1.7
感謝,
感謝您指出文檔查找機制。我會嘗試這種方式。 – user3685928