elasticsearch学习之相关度评分tf&idf

笨小孩 笨小孩     2022-09-05     141

关键词:

relevance score算法,简单来说,就是计算出,一个索引中的文本,与搜索文本,他们之间的关联匹配程度

Elasticsearch使用的是 term frequency/inverse document frequency算法,简称为TF/IDF算法

Term frequency(TF):搜索文本中的各个词条在field文本中出现了多少次,出现次数越多,就越相关

Inverse document frequency(IDF):搜索文本中的各个词条在整个索引的所有文档中出现了多少次,出现的次数越多,就越不相关

示例:

搜索请求:hello world

doc1:hello, today
is very good doc2:hi world, how are you
比如说,在index中有1万条document,hello这个单词在所有的document中,一共出现了1000次;world这个单词在所有的document中,一共出现了100次 doc2更相关

Field-length norm:field长度,field越长,相关度越弱

doc1:{ "title": "hello article", "content": "babaaba 1万个单词" }
doc2:{ "title": "my article", "content": "blablabala 1万个单词,hi world" }

hello world 在整个index中出现的次数是一样多的

doc1 更相关,title field更短

分析一个document是如何被匹配上的

GET /test_index/test_type/6/_explain
{
    "query": {
        "match": {
            "test_field": "test hello"
        }
    }
}

 

elasticsearch系列---相关性评分算法及正排索引(代码片段)

...相关性评分的算法,以及正排索引排序的优势。评分算法Elasticsearch进行全文搜索时,BooleanModel是匹配的基础,先用booleanmodel将匹配的文档挑选出来,然后再运用评分函数计算相关度,参与的函数如我们提到的TF/IDF、LengthNorm等,... 查看详情

elasticsearch系列---相关性评分算法及正排索引(代码片段)

...相关性评分的算法,以及正排索引排序的优势。评分算法Elasticsearch进行全文搜索时,BooleanModel是匹配的基础,先用booleanmodel将匹配的文档挑选出来,然后再运用评分函数计算相关度,参与的函数如我们提到的TF/IDF、LengthNorm等,... 查看详情

深度学习之tensorflow框架(中)(代码片段)

会话开启会话tf.Session用于完整的程序中tf.InteractiveSession用于交互式上下文中的tensorflow查看张量的值都必须在会话里面c_new_value=new_sess.run(c_new)print("c_new_value:",c_new_value)print("a_new_value:",a_new.eval())1defsession_demo():2"""3会话的演示4:return... 查看详情

elasticsearch学习之入门

1.什么是Elasticsearch  Elasticsearch是一个基于ApcheLucene的开源实时分布式搜索和分析引擎。2.安装  安装Elasticsearch的唯一要求是安装官方新版的java,地址:www.java.com  在elasticsearch.org/download下载最新版本的Elasticsearch。3.运行 ... 查看详情

elasticsearch聚合学习之四:结果排序(代码片段)

欢迎访问我的GitHub本篇概览本文是《Elasticsearch聚合学习》系列的第四篇,在前面的实战中,聚合的结果以桶(bucket)为单位,放在JSON数组中返回,这些数据是没有排序的,今天来学习如何给这些数据进行排序;系列文章列表《Elast... 查看详情

深度学习之tensorflow框架(上)(代码片段)

1importtensorflowastf2importos3os.environ[‘TF_CPP_MIN_LOG_LEVEL‘]=‘2‘4deftensorflow_demo():56#原生python加法运算7a=2;8b=3;9c=a+b;10print("普通加法运算的结果:",c);11#tensorflow实现加法运算12a_t=tf.constant(2)13b_t=tf.constant(3)14c_t=a_t+b_t15print("tensorflow的加法运... 查看详情

elasticsearch学习之有用博客

推荐阅读:1、阿里:https://elasticsearch.cn/article/61712、滴滴:http://t.cn/EUNLkNU3、腾讯:http://t.cn/E4y9ylL4、携程:https://elasticsearch.cn/article/62055、社区:https://elasticsearch.cn/article/62026、社区:https://elasticsearch.cn/article/7087、社区:https://e... 查看详情

elasticsearch学习之入门2

关于Elasticsearch的几个概念:  1)在Elasticsearch中,文档归属于类型type,而类型归属于索引index,为了方便理解,可以把它们与传统关系型数据库做类比:    RelationalDB->DataBases->Tables->Rows->Columns    Elasticsearch->Indices-&g... 查看详情

elasticsearch学习之配置文件详解(代码片段)

Elasticsearch配置文件#####################ElasticsearchConfigurationExample#######################只是挑些重要的配置选项进行注释,其实自带的已经有非常细致的英文注释了!#https://www.elastic.co/guide/en/elasticsearch/reference/current/module 查看详情

elasticsearch学习之基础概念

  Elasticsearch是一个近实时的分布式搜索引起,其底层基于开源全文搜索库Lucene;Elasticsearch对Lucene进行分装,对外提供RESTAPI的操作接口。基于ES,可以快速的搭建全文搜索引擎;除了搜索功能,ES还可以对数据进行分析:如日... 查看详情

elasticsearch探索之路权重计算与文本分析:布尔模型tf/idf向量空间模型分析与分析器(代码片段)

...析分析与分析器内置分析器自定义分析器权重计算原理在Elasticsearch中,每个文档都有相关性评分,用一个正浮点数字段_score来表示。_score的评分越高,相关性越高。为了保证搜索到的结果相关度更高,在默认情况... 查看详情

elasticsearch学习之head插件安装(代码片段)

通过elasticseach自带的plugin命令 elasticsearch/bin/plugin-installmobz/elasticsearch-head如下图: 2.zip包安装  2.1 https://github.com/mobz/elasticsearch-head下载zip解压  2.2 建立elasticsearch-2.3.1\plu 查看详情

elasticsearchelasticsearch中的相似度评分介绍(代码片段)

1.概述转载:Elasticsearch中的相似度评分介绍本文要点相关性得分是一个搜索引擎的核心,了解它的工作原理对创建一个好的搜索引擎至关重要。Elasticsearch使用了两种相似度评分函数:5.0版本之前的TF-IDF以及5.0版本之... 查看详情

elasticsearch学习之深入搜索五---phrasematching搜索技术

1.近似匹配什么是近似匹配,两个句子javaismyfavouriteprogramminglanguage,andIalsothinksparkisaverygoodbigdatasystem.javasparkareveryrelated,becausescalaisspark‘sprogramminglanguageandscalaisalsobasedonjvmlikejava.match 查看详情

elasticsearch学习之elasticsearch的介绍和基本使用(代码片段)

Elasticsearch一)ES的基本介绍1.Elasticsearch是什么2.Eelasticsearch的作用3.Elasticsearch,Solr和Lucene三者之间的关系4.Elasticsearch的索引结构--倒排索引5.ES中的一些基本概念二)ES索引的增删改查1.mapping映射属性2.索引库的创建3.查... 查看详情

elasticsearch学习之elasticsearch的介绍和基本使用(代码片段)

Elasticsearch一)ES的基本介绍1.Elasticsearch是什么2.Eelasticsearch的作用3.Elasticsearch,Solr和Lucene三者之间的关系4.Elasticsearch的索引结构--倒排索引5.ES中的一些基本概念二)ES索引的增删改查1.mapping映射属性2.索引库的创建3.查... 查看详情

elasticsearch学习之深入搜索三---bestfields策略

1. 为帖子数据增加content字段POST/forum/article/_bulk{"update":{"_id":"1"}}{"doc":{"content":"iliketowritebestelasticsearcharticle"}}{"update":{"_id":"2"}}{"doc":{"content":"ithinkjavaisthebestprogrammingl 查看详情

elasticsearch学习之多种查询方式

1.querystringsearch  搜索全部商品:GET/ecommerce/product/_search  took:耗费了几毫秒  timed_out:是否超时,这里是没有  _shards:数据拆成了5个分片,所以对于搜索请求,会打到所有的primaryshard(或者是它的某个replicashard也可以... 查看详情