Elasticsearch——multi termvectors的用法
2016-04-04 15:47
281 查看
什么是TF-IDF?
今天早晨起来,看《ES IN ACTION》的时候,遇到了这个术语,看英文实在不明白,于是百度了一下。看到了阮一峰的一篇关于它的文章,讲解的十分简单明了,不得不佩服大家的作品,就是不一样。其实TF-IDF是一种全文检索很常见的算法,即按照关键词以及权重来判断用户想要的是哪一个相关的文档。
比如说,
我的名字叫xingoo这句话,想要针对它来做一次全文检索。
第一步,就是对它进行分词,可以分为
我
的
名字
叫
xingoo其中
的是一种停顿词,很多文档中都会出现,因此可以忽略。那么关键词可以变为:
名字``xingoo。那么
名字``xingoo这两个词出现了多少次,就可以作为TF,即term frequnency,词频。
第二步,如果其他的文档中也会出现
名字这种词,而很少会出现
xingoo这种个性话的词。因此采用一种逆向权重法,即越少出现的词,越特殊,越能代表这篇文档的特殊性。这个就叫做IDF,即Inverse Document Frequency,你文档频率。
关于他们的计算公式,可以参考阮一峰的文章,很容易理解的!
multi tervectors
再说回官方文档吧,这次介绍的是一次性返回多个查询的termvectors,原理和multi get类似,都是使用一个docs的数组,请求多个index,type,id。curl 'localhost:9200/_mtermvectors' -d '{ "docs": [ { "_index": "testidx", "_type": "test", "_id": "2", "term_statistics": true }, { "_index": "testidx", "_type": "test", "_id": "1", "fields": [ "text" ] } ] }'
索引可以放在url上面,这样docs中就可以忽略,也可以在docs进行覆盖:
curl 'localhost:9200/testidx/_mtermvectors' -d '{ "docs": [ { "_type": "test", "_id": "2", "fields": [ "text" ], "term_statistics": true }, { "_type": "test", "_id": "1" } ] }'
type也是如此:
curl 'localhost:9200/testidx/test/_mtermvectors' -d '{ "docs": [ { "_id": "2", "fields": [ "text" ], "term_statistics": true }, { "_id": "1" } ] }'
如果索引和类型都一样,只有请求的id不一样,那么可以把id放在一个数组里面:
curl 'localhost:9200/testidx/test/_mtermvectors' -d '{ "ids" : ["1", "2"], "parameters": { "fields": [ "text" ], "term_statistics": true, … } }'
由于termvectors支持用户自己定义的文档,而不是ES中存储的。因此可以按照下面的语法,请求多个自定义的文档进行解析:
curl 'localhost:9200/_mtermvectors' -d '{ "docs": [ { "_index": "testidx", "_type": "test", "doc" : { "fullname" : "John Doe", "text" : "twitter test test test" } }, { "_index": "testidx", "_type": "test", "doc" : { "fullname" : "Jane Doe", "text" : "Another twitter test ..." } } ] }'
相关文章推荐
- 网站制作(一):基本的html元素
- 屏蔽视频暂停时的广告
- iOS项目依赖注入简介
- Javassist学习总结
- 《深入理解计算机系统》读书笔记 第七章 链接
- 构建之法 东北师大站 冲刺领跑
- Codeforces Round #346 (Div. 2)B. Qualifying Contest
- Linux驱动开发-13、平台总线驱动模型
- 3.索引
- 引用(四)
- Linux下的ip命令,除了ifconfig还有很多
- js获取路径
- hibernate4 映射集合属性 set
- 如何定义java中的类
- JVM-字节码指令
- 电网QT项目|第一次出现bug……
- 70. Climbing Stairs
- jsoup处理url
- block-循环引用
- PhpStorm 对 AngularJS 的支持