搜索记录

通过关键词搜索记录

示例1:

# encoding:utf-8
#!/usr/bin/python

from elasticsearch import Elasticsearch

class ElasticObj:
    def __init__(self, index_name, index_type, ip ="127.0.0.1"):

        '''
        :param index_name: 索引名称
        :param index_type: 索引类型
        '''
        self.index_name =index_name
        self.index_type = index_type

        # 无用户名密码状态
        self.es = Elasticsearch([ip])

        #用户名密码状态
        # self.es = Elasticsearch([ip],http_auth=('elastic', 'password'),port=9200)

    '''
    搜索数据
    '''
    def Search(self, query):
        print self.es.search(index=self.index_name, doc_type=self.index_type, body=query)


if __name__ == "__main__":

    obj =ElasticObj("test", "test_type", ip ="127.0.0.1")
    query = {'query': {'match': {'title': 'Eloquent'}}}
    obj.Search(query)

执行结果:

{
  u'hits': {
    u'hits': [
      {
        u'_score': 0.2876821,
        u'_type': u'test_type',
        u'_id': u'2',
        u'_source': {
          u'url': u'https://www.codercto.com/courses/d/62.html',
          u'id': 2,
          u'title': u'Eloquent: 模型关联'
        },
        u'_index': u'test'
      },
      {
        u'_score': 0.2876821,
        u'_type': u'test_type',
        u'_id': u'1',
        u'_source': {
          u'url': u'https://www.codercto.com/courses/d/61.html',
          u'id': 1,
          u'title': u'Eloquent: 入门'
        },
        u'_index': u'test'
      }
    ],
    u'total': 2,
    u'max_score': 0.2876821
  },
  u'_shards': {
    u'successful': 5,
    u'failed': 0,
    u'skipped': 0,
    u'total': 5
  },
  u'took': 23,
  u'timed_out': False
}

可以看到 2 条包含 Eloquent 关键词的数据被检索出来了。

示例2:

obj =ElasticObj("test", "test_type", ip ="127.0.0.1")
query = {'query': {'match': {'title': '入门'}}}
obj.Search(query)

执行结果:

{
  u'hits': {
    u'hits': [
      {
        u'_score': 0.5753642,
        u'_type': u'test_type',
        u'_id': u'1',
        u'_source': {
          u'url': u'https://www.codercto.com/courses/d/61.html',
          u'id': 1,
          u'title': u'Eloquent:入门'
        },
        u'_index': u'test'
      }
    ],
    u'total': 1,
    u'max_score': 0.5753642
  },
  u'_shards': {
    u'successful': 5,
    u'failed': 0,
    u'skipped': 0,
    u'total': 5
  },
  u'took': 10,
  u'timed_out': False
}

可以看到只有条件包含 入门 的数据被检索出来了。

点击查看所有 Python 操作 ElasticSearch 简明教程 文章: https://codercto.com/courses/l/6.html

查看所有标签

Effective Python

Effective Python

布雷特·斯拉特金(Brett Slatkin) / 爱飞翔 / 机械工业出版社 / 2016-1 / 59

用Python编写程序,是相当容易的,所以这门语言非常流行。但若想掌握Python所特有的优势、魅力和表达能力,则相当困难,而且语言中还有很多隐藏的陷阱,容易令开发者犯错。 本书可以帮你掌握真正的Pythonic编程方式,令你能够完全发挥出Python语言的强大功能,并写出健壮而高效的代码。Scott Meyers在畅销书《Effective C++》中开创了一种以使用场景为主导的精练教学方......一起来看看 《Effective Python》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具