当前位置:   article > 正文

ElasticSearch教程(二)—— 基本使用

elasticsearch教程

基本使用

基本概念

ElasticSearch是面向文档的,它存储文档,并索引每个文档的内容使之可以被索引。ES选择json作为文档序列化格式。

索引:名词,类似一个数据库,是一个存储关系性文档的地方。

索引:动词,把关系型文档存到索引的过程,是插入。

ES使用倒排索引来索引文档,只有在倒排索引中存在的属性才能被搜索。

倒排索引

倒排索引,文档经过分词器分出许多词根,并把词根和文档的关联关系存在一个文档中。

term doc1 doc2
run X
jump X
swim X X
fight X

当搜索一个语句,回返回所有存在该term的文档。如搜索run swim,doc1,doc2都存在索引,但doc1的匹配度更高。

term doc1 doc2
run X
swim X X
total 2 1

倒排索引存在的问题是必须完全按照倒排索引的字段来查询,只要单词不一样,就搜索不到匹配文档。如倒排索引分出的词是swiming,搜索swim,SWIM都不会匹配到。

可以的做法,规范搜索词,如SWIM后台转成swim去匹配。对于swiming,users这类的词,可以通过词干抽取,把swiming抽成swim,users抽成user。倒排索引数据会很大,需要压缩。

索引文档

一个elasticSearch集群有多个索引(index),每个索引有多个type(类型),每个type有多个属性。

对于索引雇员目录,我们这么做

  • 每个雇员都是一个文档
  • 每个文档我们都放到employ类型下
  • employ类型在索引megacorp中
  • 该索引保存在elaticSearch集群内。
curl -X PUT "localhost:9200/megacorp/employee/1" -H 'Content-type: application/json;' -d'
{
    "first_name": "John";
    "last_name": "Smith";
    "age": 25;
    "about": "I love to go rock climbing";
    "interests": ["sports", "music"]
}
'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

返回

{
    "_index": "megacorp",
    "_type": "employee",
    "_id": "1",
    "_version": 1,
    "result": "created",
    "_shards": {
        "total": 2,
        "successful": 1,
        "failed": 0
    },
    "_seq_no": 0,
    "_primary_term": 1
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
<
属性 含义
_index 存放索引
_type 存放类型
_shards 存放分片信息
_id 插入的id
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/721516
推荐阅读
相关标签
  

闽ICP备14008679号