提供一个api的flask蓝图,用于访问和搜索从源数据包创建的elasticsearch索引

apies的Python项目详细描述


TravisCoverallsPyPI - Python Version

apies是一个flask蓝图,提供了一个api,用于访问和搜索从源数据包创建的elasticsearch索引。

端点

待定

配置

此蓝图的烧瓶配置:

fromapiesimportapies_blueprintimportelasticsearchapp.register_blueprint(apies_blueprint(['path/to/datapackage.json',Package(),...],elasticsearch.Elasticsearch(...),'index-to-search-in',document_doctype='document',dont_highlight=['fields','not.to','highlight']),url_prefix='/search/')

地方发展

您可以按照以下步骤启动本地开发服务器:

  1. 安装依赖项:

    a.在本地安装Docker

    b.安装python依赖项:

    $ pip install dataflows datapackage-pipelines-elasticsearch
    $ pip install -e .
    
  2. 转到sample/目录

  3. 在本地启动ElasticSearch:

    $ ./start_elasticsearch.sh
    

    此脚本将等待并轮询服务器,直到它启动并运行。 您可以自己运行来测试:

    $ curl -s http://localhost:9200
     {"name" : "DTsRT6T",
         "cluster_name" : "elasticsearch",
         "cluster_uuid" : "QnLVHaOYTkmJZzkCG3Hong",
         "version" : {"number" : "5.5.2",
             "build_hash" : "b2f0c09",
             "build_date" : "2017-08-14T12:33:14.154Z",
             "build_snapshot" : false,
             "lucene_version" : "6.6.0"},
         "tagline" : "You Know, for Search"}
  4. 将数据加载到数据库中

    $ python load_fixtures.py
    

    您可以测试数据是否已加载:

    $ curl -s http://localhost:9200/jobs/_count?pretty
     {"count" : 3516,
         "_shards" : {"total" : 5,
                 "successful" : 5,
                 "failed" : 0}}
  5. 启动示例服务器

    $ python server.py 
     * Serving Flask app "server"(lazy loading)
     * Environment: production
     WARNING: Do not use the development server in a production environment.
     Use a production WSGI server instead.
     * Debug mode: off
     * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
  6. 现在您可以访问服务器的端点,例如:

         $ curl -s 'localhost:5000/api/search/jobs?q=engineering&size=2'| jq
         127.0.0.1 - - [26/Jun/2019 10:45:31]"GET /api/search/jobs?q=engineering&size=2 HTTP/1.1"200 -
         {"search_counts": {"_current": {"total_overall": 617}},
             "search_results": [{"score": 18.812,
                 "source": {"# Of Positions": "5",
                     "Additional Information": "TO BE APPOINTED TO ANY CIVIL <em>ENGINEERING</em> POSITION IN BRIDGES, CANDIDATES MUST POSSESS ONE YEAR OF CIVIL <em>ENGINEERING</em> EXPERIENCE IN BRIDGE DESIGN, BRIDGE CONSTRUCTION, BRIDGE MAINTENANCE OR BRIDGE INSPECTION.",
                     "Agency": "DEPARTMENT OF TRANSPORTATION",
                     "Business Title": "Civil Engineer 2",
                     "Civil Service Title": "CIVIL ENGINEER",
                     "Division/Work Unit": "<em>Engineering</em> Review & Support",
             ...
         }

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在Spring工具套件中找到Spring版本?   是否有API将vSphere JSON结果映射到适当的Java对象?   java在spring WebSocket中有请求作用域吗?(websocket scop==会话范围)   java我想从list1中删除list2元素并返回list1   java使用JPA/Hibernate为单个集合使用多个@Where   JSF2.0中混合Ajax和完整请求的java   java变量miles可能尚未初始化   java使用文件路径StringArray构建父子数组   java数据源在struts中不起作用   java从另一个类访问txtField值   具有相同主键和外键双向关系的java Hibernate实体OneToOne   java Android广播接收器:上下文问题   java我可以将实体指定为数据存储属性以实现类似joinlike的功能吗?   java如何排除hadoop核心依赖项   java是否可以确定用户是否实时单击了任何通知(不仅仅是来自我的应用程序)?   java在单独的类中访问私有变量?   java如何使用Spring@Value注入映射