首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分析或not_analyzed,选择什么?

分析或not_analyzed,选择什么?
EN

Stack Overflow用户
提问于 2016-05-30 19:38:39
回答 1查看 8.5K关注 0票数 11

我只使用kibana搜索ElasticSearch,我有几个字段只能取几个值(最坏的情况是,servername,30个不同的值)。

我确实理解了分析对更大、更复杂的字段like this的作用,但是对于那些小而简单的字段,我无法理解分析/非分析字段的优缺点。

那么,在“有限值集”字段中使用Analysisandnot_analyzed有什么好处(例如。服务器名: server0-9*,没有特殊字符要中断)?我在基巴纳会失去什么样的搜索类型?我会获得任何搜索速度或磁盘空间吗?

在其中一次测试中,我发现字段的.raw版本现在是空的,但是kibana仍然将字段标记为已分析的字段,因此我发现我的测试没有定论。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-30 22:22:30

我会尽量保持简单,如果你需要更多的澄清,就让我知道,我会详细说明一个更好的答案。

“分析”字段将使用您在映射中为特定表定义的分析器创建一个令牌。如果您使用的是默认分析器(因为您指的是没有特殊字符的东西,那么让我们假设server1-9)使用默认分析器(alnum-小写单词-braker(这不是它所做的基本名称)将标记:

代码语言:javascript
复制
this -> HelloWorld123
into -> token1:helloworld123

OR

this -> Hello World 123
into -> token1:hello && token2:world && token3:123

在本例中,如果您执行搜索: HeLlO,它将成为-> "hello“,并且它将匹配此文档,因为标记"hello”就在那里。

对于not_analized字段,它根本不应用任何令牌程序,您的令牌是您的关键字,因此可以这样说:

代码语言:javascript
复制
this -> Hello World 123
into -> token1:(Hello World 123)

如果您在该字段中搜索"hello world 123“

不匹配,因为“区分大小写”(您仍然可以使用通配符(Hello*),让我们在另一个时间解决这个问题)。

简而言之:

对要搜索的字段使用“分析”字段,并希望elasticsearch对其进行评分。例如:包含“作业”一词的标题。查询:“标题:作业”。

代码语言:javascript
复制
doc1 : title:developer jobs in montreal
doc2 : title:java coder jobs in vancuver
doc3 : title:unix designer jobs in toronto
doc4 : title:database manager vacancies in montreal

这将检索title1 title2 title3。

在这种情况下,“分析”字段就是您想要的。

如果您事先知道该字段上的数据类型,并且要准确地查询您想要的内容,那么"not_analyzed“就是您想要的。

示例:

从server123获取所有日志。

查询:“server:server 123”。

代码语言:javascript
复制
doc1 :server:server123,log:randomstring,date:01-jan
doc2 :server:server986,log:randomstring,date:01-jan
doc3 :server:server777,log:randomstring,date:01-jan
doc4 :server:server666,log:randomstring,date:01-jan
doc5 :server:server123,log:randomstring,date:02-jan

结果仅来自server1和server5。

我希望你明白我的意思。就像我说的,保持简单是关于你所需要的。

分析了->磁盘上更多的空间(如果分析文件很大,就会更多)。分析->,增加指数化时间。较好地分析了->对文档的匹配。

not_analyzed ->磁盘上的空间更少。not_analyzed ->更少指数化时间。not_analyzed ->与字段或使用通配符完全匹配。

致以敬意,

丹尼尔

票数 32
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37532648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档