0
点赞
收藏
分享

微信扫一扫

Elasticsearch-17.SpaceJam一个全文搜索的实例和使用Search Template 和Index Alias

Elasticsearch

SpaceJam一个全文搜索的实例

TMDB数据库

在这里插入图片描述

数据导入

在这里插入图片描述

Use Case一查找Space Jam

在这里插入图片描述

Highlight -结果高亮

在这里插入图片描述

测试相关性一理解原理+多分析+多调整测试

  • 技术分为道和术两种

    • 道一 原理和原则
    • 术一 具体的做法,具体的解法
  • 关于搜索,为了有一个好的搜索结果。除了真正理解背后的原理,更需要多加实践与分析

    • 单纯追求“术”,会一直很辛苦。只有掌握了本质和精髓之“道”,做事才能游刃有余

    • 要做好搜索,除了理解原理,也需要坚持去分析一些不好的搜索结果。只有通过一定时间的积累,
      才能真正有所感觉

    • 总希望一个模型, 一个算法,就能毕其功于一役,是不现实的

监控并且理解用户行为

  • 不要过度调试相关度

  • 而要监控搜索结果,监控用户点击最顶端结果的频次

  • 将搜索结果提高到极高水平,唯一途径就是

    • 需要具有度 量用户行为的强大能力
    • 可以在后台实现统计数据,比如,用户的查询和结果,有多少被点击了
    • 哪些搜索, 没有返回结果

API

POST tmdb/_search
{
"_source": ["title","overview"],
 "query": {
   "match_all": {}
 }
}

POST tmdb/_search
{
  "_source": ["title","overview"],
  "query": {
    "multi_match": {
      "query": "basketball with cartoon aliens",
      "fields": ["title","overview"]
    }
  },
  "highlight" : {
        "fields" : {
            "overview" : { "pre_tags" : ["\\033[0;32;40m"], "post_tags" : ["\\033[0m"] },
            "title" : { "pre_tags" : ["\\033[0;32;40m"], "post_tags" : ["\\033[0m"] }

        }
    }
}

知识点回顾

  • 目标:用过一个具体案例,帮助你了解并巩固所学的知识点
  • 使用Python脚本导入及查询数据/ Mapping设定
  • Mapping 设定和分词器的选择至关重要
  • 监控并理解用户行为/查询并调试相关度
    • Boosting 查询字段/ Explain API/高亮显示

使用Search Template 和Index Alias

Search Template -解耦程序&搜索DSL

在这里插入图片描述

使用Search Template进行查询

在这里插入图片描述

Index Alias实现零停机运维

在这里插入图片描述

使用Alias创建不同查询的视图

在这里插入图片描述

API

POST _scripts/tmdb
{
  "script": {
    "lang": "mustache",
    "source": {
      "_source": [
        "title","overview"
      ],
      "size": 20,
      "query": {
        "multi_match": {
          "query": "{{q}}",
          "fields": ["title","overview"]
        }
      }
    }
  }
}
DELETE _scripts/tmdb

GET _scripts/tmdb

POST tmdb/_search/template
{
    "id":"tmdb",
    "params": {
        "q": "basketball with cartoon aliens"
    }
}


PUT movies-2019/_doc/1
{
  "name":"the matrix",
  "rating":5
}

PUT movies-2019/_doc/2
{
  "name":"Speed",
  "rating":3
}

POST _aliases
{
  "actions": [
    {
      "add": {
        "index": "movies-2019",
        "alias": "movies-latest"
      }
    }
  ]
}

POST movies-latest/_search
{
  "query": {
    "match_all": {}
  }
}

POST _aliases
{
  "actions": [
    {
      "add": {
        "index": "movies-2019",
        "alias": "movies-lastest-highrate",
        "filter": {
          "range": {
            "rating": {
              "gte": 4
            }
          }
        }
      }
    }
  ]
}

POST movies-lastest-highrate/_search
{
  "query": {
    "match_all": {}
  }
}



知识点回顾

  • Search Template的使用场景

    • 如果通过 Mocha语法定义一个Search Template
  • Index Alias的使用场景

    • 如何创建 与使用Index Alias
    • 通过Index Alias创建不同的查询视图
举报

相关推荐

0 条评论