文档章节

ES权威指南[官方文档学习笔记]-55 Exact values vs. Full text

强子大叔的码田
 强子大叔的码田
发布于 2014/05/14 15:04
字数 459
阅读 203
收藏 0

es:http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/_exact_values_vs_full_text.html

下一篇:http://my.oschina.net/qiangzigege/blog/265360

内容

数据类型可以分为2类:具体值和全文。

具体值,比如说日期或者一个用户ID,也可以包括具体的字符串比如用户名或者邮箱。

具体值"Foo"与具体值"foo"不同. 
具体值2014 与具体值2014-09-15也不同.

全文,引用文本内容,比如tweet的文本或者email的内容。

全文通常理解为非结构化数据,问题是:自然语言的规则复杂,计算机难以解析,比如,考虑到以下句子:

May is fun but June bores me.
这是说月份还是人?

具体值就容易查询,一个值要么匹配查询要么不匹配。
用SQL表达如下:

WHERE name    = "John Smith"
  AND user_id = 2
  AND date    > "2014-09-15"
  
查询全文的数据就更微妙,
我们不仅仅问文档是否匹配查询,还要知道文档与查询有多匹配,
换句话来说,相关度如何?

很少情况下,我们想完全匹配文本段,而是在文本域里搜索,我们还希望搜索能够理解我们的意图。

一个针对于"UK"的搜索应该可以返回包含"United Kingdom"的文档。

一个针对于"jump"的搜索应该匹配 "jumped", "jumps", "jumping" 或许甚至匹配"leap"

"johnny walker"应该匹配"Johnnie Walker","johnnie depp"应该匹配"Johnny Depp"。

"fox news hunting"应该返回跟"hunting on Fox News"有关的故事,
"fox hunting news"应该返回"news stories about fox hunting"有关的。

为了让这些全文字段的搜索便利,es首先分析文本,然后使用结果来建立倒排索引,
我们将讨论倒排索引和分析过程。

 

© 著作权归作者所有

强子大叔的码田

强子大叔的码田

粉丝 907
博文 1429
码字总数 1219943
作品 9
南京
架构师
私信 提问
es不简易指南

1.nested Object mapping及查询 进阶:Elasticsearch之Nested(嵌套)系列、es权威指南-嵌套-查询、es权威指南-嵌套-对象(官方文档中文详细解释) 2.父子文档 进阶:Elasticsearch索引的父子关...

刘阳0292
2017/08/30
0
0
Mac下安装Elasticsearch极简指南

Elasticsearch(以下简称ES)是一个面向文档的实时分布式搜索和分析引擎。本文是在Mac系统下使用Homebrew安装ES+Kibana+Marvel的一份极简指南。 前置条件 想要安装ES的前提是已经在本机安装了J...

郗南枫
2017/11/08
0
0
开源电子书

目录 语言无关类 操作系统 智能系统 分布式系统 编译原理 函数式概念 计算机图形学 WEB服务器 版本控制 编辑器 NoSQL PostgreSQL MySQL 管理和监控 项目相关 设计模式 Web 大数据 编程艺术 ...

zting科技
2017/12/11
0
0
Fanta/free-programming-books-zh_CN

免费的编程中文书籍索引 免费的编程中文书籍索引,欢迎投稿。 国外程序员在 stackoverflow 推荐的程序员必读书籍,中文版。 stackoverflow 上的程序员应该阅读的非编程类书籍有哪些? 中文版...

Fanta
2016/11/14
0
0
Elasticsearch聚合学习之四:结果排序

版权声明:欢迎转载,请注明出处,谢谢。 https://blog.csdn.net/boling_cavalry/article/details/89812169 本文是《Elasticsearch聚合学习》系列的第四篇,在前面的实战中,聚合的结果以桶(...

博陵精骑
05/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

RxJava进行单元测试的方式

@Test public void completeTask_retrievedTaskIsComplete() { // Given a new task in the persistent repository final Task newTask = new Task(TITLE, ""); ......

SuShine
5分钟前
2
0
正则表达式大全

检验手机号码 # 要求:手机号码必须为11位数字,以1开头,第二位为1或5或8。import redef verify_mobile(): mob = input("请输入手机号码:") ret = re.match(r"1[358]\d{9}", m......

彩色泡泡糖
9分钟前
2
0
QT之border-image属性

一、border-image的兼容性 border-image可以说是CSS3中的一员大将,将来一定会大放光彩,其应用潜力真的是非常的惊人。可惜目前支持的浏览器有限,仅Firefox3.5,chrome浏览器,Safari3+支持...

shzwork
10分钟前
2
0
Kubernetes Operator简易教程

1. 安装operator-sdk //安装 operator-sdk$ apt-get install operator-sdk.....$ operator-sdk versionoperator-sdk version: v0.7.0$ go versiongo version go1.11.4 darwin/amd64 2......

Robotcl_Blog
10分钟前
2
0
再谈DAG任务分解和Shuffle RDD

1、DagScheduler分析 DagScheduler功能主要是负责RDD的各个stage的分解和任务提交。Stage分解是从触发任务调度过程的finalStage开始倒推寻找父stage,如果父stage没有提交任务则循环提交缺失...

守望者之父
16分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部