
elasticsearch
文章平均质量分 69
Mr_Fogg
嘿嘿嘿
展开
-
ElasticSearch--实体搜索
现在学习到了实体搜索,加入我们想搜索例如Person、product这样的实体,在这种情况下,一些关键的信息其实分布在数据的多个属性里的。比如person的数据存储{ "firstname": "Peter", "lastname": "Smith"}或者是地址,比如这样 ```{ "street": "5 Poland Street", "city"原创 2017-04-28 11:10:28 · 599 阅读 · 0 评论 -
ElasticSearch--以属性为中心的查询
在实体查询中,我感兴趣是最匹配的项,而不是说最匹配的属性,这个在Most_fileds 或者best_fields都是以属性为中心的查询。问题1:在多个属性中匹配同样的单词考虑most_fields查询是怎么执行的:ElasticSearch对每一个属性生成一个match query 然后把这些query 包括在bool query 中。 我们用validate-query API看一下GET原创 2017-04-28 14:45:11 · 889 阅读 · 0 评论 -
ElasticSearch--停用词的使用
使用停用词的利弊我们拥有更多硬盘资源,但是比较少的内存资源。从索引中去掉一些停用词平均每百万个文档中也就节省了4MB的资源。所以停用词并不是来节省存储资源的。 并且,我们移除一些停用词会带来一些坏处。比如我们就很难无法做到以下几种事情:区分 happy from not happy搜索 the band The The找到莎士比亚的名言”to be, or not to be”用国家原创 2017-05-03 16:20:15 · 3023 阅读 · 0 评论 -
ElasticSearch--相关度背后的理论
TF/IDF词频(TF)其实就是一个词在一篇文章中出现的频率在开平方,频率越高,说明这个词在这篇文章中的权重越高IDFidf(word) = 1+log(numDocs/(docFreq +1)) numdocs是所有文档的数量,docFreq 是包含有word的文档的数量。可以看出当docFreq越大,则IDF越小,例如像the这样的词,几乎每篇文章里都有,所以这样的词权重就很低Field-le原创 2017-05-04 10:20:47 · 521 阅读 · 0 评论 -
ElasticSearch--Lucene是怎么计算相关度的
话不多说,直接上公式 公式说明:score(q,d)是文档 d 和查询 q 之间的相关度queryNorm(q)是查询正则化因子 %coord(q,d)是coordination factor %对在查询字符串q中的每个单词t在文档d中的权重求和词频,单词t在文档d中的词频t的idft.getBoost()是一个权重的提升权重%norm(t,d) 是filed-lengt原创 2017-05-04 13:14:59 · 551 阅读 · 0 评论 -
ElasticSearch--联合过滤器查询
Combining Filters 之前的两个例子都是单个字段的查询。在生成环境中,你会需要多个值一起查询的,例如在sql语言中 SELECT product FROM products WHERE (price = 20 OR productID = "XHDK-A-1293-#fJ3") AND (price != 30) 这种情况,你需要一个bool query在c原创 2017-04-26 15:12:57 · 956 阅读 · 0 评论 -
ElasticSearch--Term-Based VS Full-Text
所有的访问执行关联度计算,但并不是所有访问都有一个分析阶段。除了一些特定查询例如Bool或者是function_score查询,这些不再文本上执行。文本访问可以被分成两个部分:Term-based queriesQueries 像term或者是fuzzy queries 是一种低水平访问,没有分析模块。它们在单个term上执行。一个term query for foo 寻找具体term 在反向索引中原创 2017-04-26 17:25:19 · 389 阅读 · 0 评论