全文搜索-介绍-elasticsearch-definitive-guide翻译
全文搜索
- 相似度计算
-
通过TF/IDF (see
p=43#relevance-intro" style="border:0px; font-family:inherit; font-style:inherit; margin:0px; outline:0px; padding:0px; vertical-align:baseline; color:rgb(85,85,85); text-decoration:none">[relevance-intro]
),地理位置接近算法。模糊相似度算法或者其它算法,用来给给定查询条件的结果排序。 - 文本分析
- 通过把文本分割和归一化后的词元。去(a)生成倒排索引,或者去(b)查询倒排索引。
词条搜索 vs. 全文搜索
bool和function_score。它们是boolean查询和数值查询。文本查询能够分为两个种类:
- 词条查询
-
低级别的
term和fuzzy查询没有文本分析,它们仅仅是在单个词条上查询。列如词条
"Foo"的term查询,
是在倒排索引种查找全然匹配的词条,然后给每一篇包括这个词条的文章做TF/IDF相似度打分。记住:词条"Foo"的term查询仅仅是在倒排索引里查找全然匹配的词条,它不会匹配到"foo"或者"FOO"。
当你在not_analyzed的域用["Foo","Bar"]生成索引。或者在用whitespace分析器的域用"Foo生成索引。 它们都会在倒排索引里生成两个词元
Bar""Foo"和"Bar"。 - 全文查询
-
高级别的
match和query_string查询可以理解这些域的映射:
* 假设在date和integer属性的域,查询文本会被当日期或者整数来对待。* 假设在(
not_analyzed)属性的文本域,查询文本会被当做一个词条来查询。 * 可是,假设在(analyzed)属性的文本域,查询文本会用恰当得分析器去产生词条。而这些词条都会被用来查询。一旦查询得到这些词条。它就用适当的低级查询去运行每个词条,然后用查询结果计算每一篇文章的相似度打分。
我们将在后面的章节中具体介绍这个过程。
not_analyzed域查询全然匹配值的时候,你应该考虑一下你究竟是用查询还是过滤。 由于单词条查询通常被表示为二元值yes|no,所以过滤能更好的表达它们。你能从这里收益的 filtercaching:
GET /_search
{
"query": {
"filtered": {
"filter": {
"term": { "gender": "female" }
}
}
}
}
博客已搬家
全文搜索-介绍-elasticsearch-definitive-guide翻译的更多相关文章
- 全文搜索之 Elasticsearch
概述 Elasticsearch (ES)是一个基于 Lucene 的开源搜索引擎,它不但稳定.可靠.快速,而且也具有良好的水平扩展能力,是专门为分布式环境设计的. 特性 安装方便:没有其他依赖,下载 ...
- 可以执行全文搜索的原因 Elasticsearch full-text search Kibana RESTful API with JSON over HTTP elasticsearch_action es 模糊查询
https://www.elastic.co/guide/en/elasticsearch/guide/current/getting-started.html Elasticsearch is a ...
- 在 Laravel 项目中使用 Elasticsearch 做引擎,scout 全文搜索(小白出品, 绝对白话)
项目中需要搜索, 所以从零开始学习大家都在用的搜索神器 elasiticsearch. 刚开始 google 的时候, 搜到好多经验贴和视频(中文的, 英文的), 但是由于是第一次接触, 一点概念都没 ...
- 【SpringBoot】搜索框架ElasticSearch介绍和整合SpringBoot
========================12章 搜索框架ElasticSearch介绍和整合SpringBoot ============================= 加入小D课堂技术交 ...
- ElasticSearch搜索介绍四
ElasticSearch搜索 最基础的搜索: curl -XGET http://localhost:9200/_search 返回的结果为: { "took": 2, &quo ...
- 12章 搜索框架ElasticSearch介绍和整合SpringBoot 4节课
1.搜索引擎知识和搜索框架elasticsearch基本介绍 简介:通过京东电商 介绍什么是搜索引擎,和开源搜索框架ElasticSearch6.x新特性介绍 前言:介绍ES的主要特点和使用场 ...
- ElasticSearch 2 (14) - 深入搜索系列之全文搜索
ElasticSearch 2 (14) - 深入搜索系列之全文搜索 摘要 在看过结构化搜索之后,我们看看怎样在全文字段中查找相关度最高的文档. 全文搜索两个最重要的方面是: 相关(relevance ...
- Elasticsearch系列---深入全文搜索
概要 本篇介绍怎样在全文字段中搜索到最相关的文档,包含手动控制搜索的精准度,搜索条件权重控制. 手动控制搜索的精准度 搜索的两个重要维度:相关性(Relevance)和分析(Analysis). 相关 ...
- Elasticsearch全文搜索——adout
现在尝试下稍微高级点儿的全文搜索——一项传统数据库确实很难搞定的任务. 搜索下所有喜欢攀岩(rock climbing)的雇员: curl -XGET 'localhost:9200/megacorp ...
随机推荐
- Win7上IIS发布网站系统\部署项目
1.系统已经安装IIS,如果没有安装,请到[控制面板]→[程序]→[程序和功能]→[打开或关闭Windows功能],选中Internet 信息服务Web管理工具下面的所有选项,确定:如下图 2.发布文 ...
- C#获取当前系统磁盘符、系统目录、桌面等
1.获取方式如下 Environment.SpecialFolder中定义了许多常用的目录 //获取当前系统磁盘符方法1,返回:C: string path = Environment.GetEnvi ...
- json格式初涉
json用{}表示json对象,[]表示数组,里面以值对的方式来存储信息 var jsondata='{"staff": [{"name":"jim& ...
- JavaScript不一样的语法
JavaScript除了面向对象的部分,基本语法和C语言类似,但是也有一些自己的特别之处,现总结如下: (1)break和continue后面可以跟label 语法: break labelname; ...
- JavaScript 阻止事件冒泡的实现方法
JavaScript 阻止事件冒泡,无使用其它插件来辅助,原生JS代码,考虑到浏览器的兼容性问题,这里对IE/火狐.Operating以及Chrome都有针对性的判断,代码如下: function c ...
- js识别终端类型
<script type="text/javascript"> function browserRedirect() { var sUserAgent= navigat ...
- 插入排序(C语言)
输入一个数,插入到已排序的队列中 第一:定义一个已经排好的整型数组 如: int arry[7]={2,3,5,11,15,17}; 或输入一串整型的数组,再排序(冒泡.选择都可以) 下面我们用冒泡 ...
- DotNET知识点总结四(笔记整合)
1.枚举:本质是类 如果为第一个枚举赋了一个int值,那么后面的枚举项依次递增 可以将枚举强转成他所代表的int值 C#的枚举项都是常量(可以用Reflector查看literal的IL源码) 因为枚 ...
- Java订单号(时间加流水号)
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.Fi ...
- 02 - 替换SetInput方法 VTK 6.0 迁移 (2013-06-30 16:22)
VTK6 引入了许多不兼容的变化,这其中就包括用SetInputData()和SetInputConnection()替换SetInput()方法.在先前的版本中,VTK4 引入了SetInput() ...