前几天,在github上看到了一个关于elasticsearch的小项目,有点小兴趣,于是就结合着Flask,研究了一下,分享给大家。

准备资料:

1、安装elasticsearch

参考教程:https://www.cnblogs.com/gangle/p/9328257.html

2、实现简单的搜索引擎

参考教程:https://dev.to/aligoren/using-elasticsearch-with-python-and-flask-2i0e

该教程每一步讲解的很详细,并且最后还附上了源码,虽然有点简单,但是了解elasticsearch足够了。

大家可以把源码拷贝到自己的flask项目文件夹内,用Curl调试 实现效果(我用的WIN10环境,Linux下curl代码会有些许改动)。

curl -i -H "Content-Type:application/json" -X POST -d "{\"slug\":\"slug1\",\"title\":\"kehuan\",\"content\":\"zhen ciji\"}" http://localhost:5000/insert_data

以上代码通过POST方法,插入索引;

得到返回。

curl -i -H "Content-Type:application/json" -X POST -d "{\"keyword\":\"kehuan\"}" http://localhost:5000/search

通过代码定义的search方法,实现关键字“kehuan”搜索,即按照给定的关键字,搜索之前插入的索引中的匹配值,并返回如下图所示。

扩展:

可以利用elasticsearch结合数据库实现博客的文章关键字搜索,结合爬虫技术实现爬取到的数据实时展示等。

注:教程里的源码不适合curl调试,要实现curl调试需要做如下两点修改即可:

1、共修改四处

request.form[' ']   修改为 :  request.json[' ']

2、修改一处

res = es.search(index="contents", doc_type="title", body=body)   去掉:   doc_type="title" 即可

最后,喜欢Flask的朋友,可以扫描一下二维码,里面有小编的原创技术文章,希望会对大家有帮助。

Flask+elasticsearch实现搜索引擎入门教程+Curl调试的更多相关文章

  1. Apache Lucene全局搜索引擎入门教程

    Lucene简介 Lucent:Apache软件基金会Jakarta项目组的一个子项目,Lucene提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻.在Java开发环境里Lucene是一个成熟 ...

  2. React Native基础&入门教程:调试React Native应用的一小步

    React Native(以下简称RN)为传统前端开发者打开了一扇新的大门.其中,使用浏览器的调试工具去Debug移动端的代码,无疑是最吸引开发人员的特性之一. 试想一下,当你在手机屏幕按下一个按钮, ...

  3. React Native基础&入门教程:初步使用Flexbox布局

    在上篇中,笔者分享了部分安装并调试React Native应用过程里的一点经验,如果还没有看过的同学请点击<React Native基础&入门教程:调试React Native应用的一小 ...

  4. Elasticsearch 5.5.1的安装和入门教程(转)

    说明:转自老阮的文章,业界最简单的入门教程.一切的安装的运行建议不要用root权限,最好是当前用户下的权限. 作者: 阮一峰 日期: 2017年8月17日 全文搜索属于最常见的需求,开源的 Elast ...

  5. Elasticsearch入门教程(五):Elasticsearch查询(一)

    原文:Elasticsearch入门教程(五):Elasticsearch查询(一) 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:h ...

  6. Elasticsearch入门教程(二):Elasticsearch核心概念

    原文:Elasticsearch入门教程(二):Elasticsearch核心概念 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:ht ...

  7. Elasticsearch入门教程(一):Elasticsearch及插件安装

    原文:Elasticsearch入门教程(一):Elasticsearch及插件安装 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:h ...

  8. php中的curl使用入门教程和常见用法实例

    摘要: [目录] php中的curl使用入门教程和常见用法实例 一.curl的优势 二.curl的简单使用步骤 三.错误处理 四.获取curl请求的具体信息 五.使用curl发送post请求 六.文件 ...

  9. .NET Core快速入门教程 5、使用VS Code进行C#代码调试的技巧

    一.前言 为什么要调试代码?通过调试可以让我们了解代码运行过程中的代码执行信息,比如变量的值等等.通常调试代码是为了方便我们发现代码中的bug.ken.io觉得熟练代码调试技巧是成为合格程序员的基本要 ...

随机推荐

  1. 英伟达GPU 嵌入式开发平台

    英伟达GPU  嵌入式开发平台 1.         JETSON TX1 开发者组件 JETSON TX1 开发者组件是视觉计算的全功能 开发平台,旨在让您能够快速地安装和运行. 该组件带有 Lin ...

  2. Kotlin 匿名内部类对象引用当前Activity的this用法

    一,Kotlin中匿名内部类,引用Activity的this用法为 this@MainActivity (对应自己的Activity),还是上代码吧 class Main17Activity : Ap ...

  3. Ubuntu 16.04配置vncviewer

    网上有各种各样的教程,既混乱又复杂.这是提供一个亲自测试可用的配置方案,十分简单,桌面环境选用xfce,Ubuntu版本是16.04. 1 安装 Xfce 和 TightVNC sudo apt in ...

  4. php strcmp()函数 语法

    php strcmp()函数 语法 作用:比较两个字符串(区分大小写) 语法:strcmp(string1,string2)直线电机气浮平台 参数: 参数 描述 string1 必须,规定要比较的第一 ...

  5. paper 154:姿态估计(Hand Pose Estimation)相关总结

    Awesome Works  !!!! Table of Contents Conference Papers 2017 ICCV 2017 CVPR 2017 Others 2016 ECCV 20 ...

  6. CSS基础知识复习

    1. CSS优先级 标签内部属性 style定义的CSS > 文档内定义的css > 引用外部CSS文件 2. CSS选择器类型 . 标签选择器 . 类选择器(使用.做标识) . ID选择 ...

  7. 梅尔频谱(mel-spectrogram)提取,griffin_lim声码器【python代码分析】

    在语音分析,合成,转换中,第一步往往是提取语音特征参数.利用机器学习方法进行上述语音任务,常用到梅尔频谱.本文介绍从音频文件提取梅尔频谱,和从梅尔频谱变成音频波形. 从音频波形提取Mel频谱: 对音频 ...

  8. sql查询语句得到返回值fetchone()

    需求: 现在mysql中有一张表,表名是info,我想通过报案号4201820330114401021497在这张表里查询出它对应的id. sql = "select claim_id fr ...

  9. pod 查看当前源/添加源

    1 pod 查看当前源 PeiSongs-iMac:5i5jAPP chenpeisong$ pod repo 0 repos 2 pod repo换源 CocoaPods 镜像使用帮助CocoaPo ...

  10. vue 页面添加水印 ts

    "use strict"; // tslint:disable-next-line: only-arrow-functions const setWatermark: (str: ...