zoukankan      html  css  js  c++  java
  • 初试 Elastic Search

    一.背景

    项目数据库中有一张Task表,关联了很多其他的表(关联方式包括一对多,以及一对一)。

    需求是 支持根据其他表的数据和本身数据进行筛选和排序。

    如果直接使用联表进行查询,耗时比较长,用户反馈使用比较慢,而且搜索条件比较复杂。

    考虑使用Elastic Search 对数据进行处理后再查询,以提高查询的性能。

    二.方案

    采用最通用的ELK方案

    Step1: 安装

    首先安装java,然后安装elk,可以在https://www.elastic.co/start上找到安装包。

    Step2: 运行

    直接去对于文件夹下执行命令即可。

    Step3: 同步数据

    这是最重要的一步,由于不知道如何将多对一的关系处理成嵌套Document,所以直接Stuff成了一个字符串处理。

    然后修改logstash的日志,可以参考

    https://segmentfault.com/a/1190000014387486

    三.查询

    elasticsearch为各个语言分别提供了客户端代码,.net可以使用

    https://github.com/elastic/elasticsearch-net上提供的nest使用函数式编程来组合查询。

    当然在这之前需要先学习如何使用DSL来进行查询,参考文献

    https://www.elastic.co/guide/en/elastic-stack/current/index.html

    四.Tips

    ElasticSearch在进行match查询的时候默认会使用分词,对中文的分词支持很差,可以使用ik中文和拼音插件进行处理。

    如果只需要严格匹配的话可以使用match_pharse

    暂时先写到这里,等之后用到更多再补充。

    (其实我觉得这个需求只要用nosql就能解决的吧)

  • 相关阅读:
    自动化测试成功11333
    自动化测试成功11222
    自动化测试成功1111
    自动化测试成功112
    自动化测试成功18
    自动化测试成功1
    自动化测试成功
    富文本测试
    关于VMware虚拟机磁盘收缩的几种方法
    8个让你更有效率的简单方法
  • 原文地址:https://www.cnblogs.com/Run-dream/p/9313965.html
Copyright © 2011-2022 走看看