ELK相关概念
lucene
lucene是apache基金会旗下的,是一个全文搜索引擎.
document
包含一个或者多个域的容器
域
field1:value1,field2:value2,field3:value3, …..
域
有许多选项
索引选项
索引选项用通过倒排索引来控制文本是否可被搜索
Index:ANYLYZED //分析(切词)并单独作为索引项 Index:Not_ANYLYZED //不切词,把整个内容当作一个索引项 Index:ANYLYZED_NORMS //类似于Index:ANYLYZED,但是不存储token的Norms(加权)信息 Index:Not_ANYLYZED_NORMS //类似于Index:ANYLYZED,但是不存储值的Norms(加权)信息 Index:Not //不对此域进行索引,因此不能被索引
存储选项
是否需要存储域的真实值
store.YES //存储真实值 store.NO //不存储真实值
项向量使用选项
用于在搜索期间该文档所有的唯一项都能完全从文档中检索时使用
搜索
查询Lucene索引时,它返回一个有序的scoreDoc对象,查询时,Lucene会为每个文档计算其score
API:
IndexSearcher:搜索索引入口
IndexSearcher中的search方法
1. TermQuery : 可以对特定的域进行搜索,Term是索引中的最小索引片段, Term包含:field:value 2. TermRangQuery:可以在多个特定项进行搜索 3. NumericRangeQuery:数值范围搜索 4. PrefixQuery:搜索指定字符串开头的项 5. BooleanQuery:组合查询 AND , OR , NOT 6. PhraseQuery: 7. WildcardQuery 8. FuzzyQuery:模糊查询
query
QueryPharse
TopDocs
ScoreDoc
ElasticSearch
引自百度百科
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。
基本概念
索引(index):在Elasticsearch中存储数据的行为就叫做索引(indexing),是个文档容器,索引名必须用小写字母
在Elasticsearch中,文档归属于一种类型(type),而这些类型存在于索引(index)中,我们可以画一些简单的对比图来类比传统关系型数据库:
+
Relational DB -> Databases -> Tables