当前位置: 首页 > 面试题库 >

分析或未分析,选择什么

广楚
2023-03-14
问题内容

我仅使用kibana搜索ElasticSearch,并且我有几个只能接受几个值的字段(最坏的情况,服务器名,30个不同的值)。

我确实了解分析对像这样的更大,更复杂的字段执行的操作,但是对于那些简单的小字段,我却无法理解分析/未分析字段的优点/缺点。

那么,对于“有限的一组值”字段(例如,服务器名:server [0-9]
*,没有特殊字符可以打破),使用analyd和not_analyzed有什么好处?我会在基巴纳语中丢失哪种搜索类型?我会获得任何搜索速度或磁盘空间吗?

在其中之一进行测试时,我看到该字段的.raw版本现在为空,但kibana仍将该字段标记为已分析,因此我发现测试没有定论。


问题答案:

如果您需要进一步说明,我将尝试保持简单,让我知道,我将详细说明。

“已分析”字段将使用您为映射中的特定表定义的分析器来创建令牌。如果您使用默认分析器(当您指的是不带特殊字符的内容时,让我们说server
[1-9]),则使用默认分析器(数字小写单词经纪人(这实际上不是它的名字,它实际上就是这个名字))是要标记化:

this -> HelloWorld123
into -> token1:helloworld123

OR

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

在这种情况下,如果您进行搜索:HeL10,它将变为->“ hello”,并且它将与该文档匹配,因为这里有令牌“ hello”。

在not_analized字段的情况下,它根本不应用任何标记器,您的​​标记是您的关键字,因此被这样说:

this -> Hello World 123
into -> token1:(Hello World 123)

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

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

简而言之:

对要搜索的字段使用“已分析”字段,并希望elasticsearch对它们进行评分。示例:包含单词“ jobs”的标题。查询:“ title:jobs”。

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:server123”。

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->字段完全匹配或使用通配符。

问候,



 类似资料:
  • 本文向大家介绍分类解析jQuery选择器,包括了分类解析jQuery选择器的使用技巧和注意事项,需要的朋友参考一下 基本选择器:   #id            根据Id匹配一个元素   .class            根据给定的类名匹配一个元素   element           根据元素名匹配一个元素   *             匹配所有元素   selecttor1,selec

  • 选址分区分析是为了确定一个或多个待建设施的最佳或最优位置,使得设施可以用一种最经济有效的方式为需求方提供服务或者商品。选址分区不仅仅是一个选址过程,还要将需求点的需求分配到相应的新建设施的服务区中,因此称之为选址与分区。 设置选址分区分析参数,包括交通网络分析通用参数、途径站点等。 //设置设施点的资源供给中心 var supplyCenterType_FIXEDCENTER = SuperMap

  • 本文向大家介绍C#选择法排序实例分析,包括了C#选择法排序实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#选择法排序实现方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的C#程序设计有所帮助。

  • 本文向大家介绍C#选择排序法实例分析,包括了C#选择排序法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#选择排序法。分享给大家供大家参考。具体如下: 希望本文所述对大家的C#程序设计有所帮助。

  • 我正在我的aspnetcore2.2项目上尝试sonarqube。 该项目使用MSbuild版本-16.1.76.45076。 当我运行官方的dotnet-sonarscanner工具版本4.6.2时,只分析CSS代码,而不分析项目中的C#、Javascript和其他代码。 null 使用不同的Sonarscanner工具: 我还用不同的声呐扫描仪工具进行了检查 使用的Sonarscanner工具

  • 使用指南 - 分析云 - 分析云是什么 一、对企业的价值 百度统计分析云是一款智能、敏捷的用户增长分析产品,以强大的数据采集和数据分析等能力,帮助企业实现数据资产沉淀,驱动企业业务全方位成长! 数据资产沉淀:帮助企业实现全域数据采集,安全、可靠的数据智能管理 数据驱动业务增长:深度挖掘数据价值,助力企业实现全业务优化升级 二、五大产品优势 全域数据采集 融合多端行为数据,底层数据全量无采样,满足企