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就能解决的吧)

  • 相关阅读:
    循环神经网络
    第四次作业:卷积神经网络 part 3
    《Strip Pooling: Rethinking Spatial Pooling for Scene Parsing》——笔记
    《Selective Kernel Networks》——笔记
    《Non-local Neural Networks 》——笔记
    HybridSN中添加SE模块
    第三次作业:卷积神经网络 part 2
    第一次作业:深度学习及pytorch基础
    需要背的板子
    Codeforces 1474F. 1 2 3 4 ... 题解
  • 原文地址:https://www.cnblogs.com/Run-dream/p/9313965.html
Copyright © 2011-2022 走看看