前几天,在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. IBM IMM默认ID

    默认ID: http://192.168.70.125用户名:USERID密码:PASSW0RD (数字0)

  2. Linux --忘记root密码/su: Authentication failure

    如果忘记了root用户的密码,或者su root的时候,提示:su: Authentication failure 那么,可以通过以下的方式来重新设置密码,而后,再尝试,那么就可以顺利su root了 ...

  3. spring cloud学习一--Eureka服务注册与发现

    spring cloud Eureka是基于Netflix Eureka服务发现注册产品的二次封装,它提供了服务注册功能(Service Registry)和服务发现功能(Service Discov ...

  4. python在mapreduce运行Wordcount程序

    首先脚本文件: mapper.py: #!/usr/bin/env python import sys for line in sys.stdin: line = line.strip() words ...

  5. Matlab中利用null函数解齐次线性方程组

    摘自:http://blog.csdn.net/masibuaa/article/details/8119032 有齐次线性方程AX=0,且rank(A)=r<n时,该方程有无穷多个解, 可以用 ...

  6. leetcode-15双周赛-1289-下降路径最小和

    题目描述: 方法一:动态规划 O(N^3) class Solution: def minFallingPathSum(self, arr: List[List[int]]) -> int: n ...

  7. CentOS7安装配置redis5.0.5

    一.安装必需包gcc yum install gcc 二.下载redis,并解压 wget http://download.redis.io/releases/redis-5.0.5.tar.gz t ...

  8. Linux如何查看进程是否存活

    ps  -ef  | grep nginx ps -ef | grep(过滤) 进程名字

  9. TypeError:NoneType object is not callable情况下的错误

    只用在该视图函数下面加上return ‘值’

  10. Python3解leetcode Binary Tree PathsAdd DigitsMove Zeroes

    问题描述: Given an array nums, write a function to move all 0's to the end of it while maintaining the r ...