主机环境:Ubuntu 13.04
Python版本:2.7.4
官方站点:http://www.elasticsearch.com/
中文站点:http://es-cn.medcl.net/
下面一段介绍引用自中文站点:
好吧,假如你建了一个web站点或者是一个应用程序,你就可能会需要添加搜索功能(因为这太有必要了),而事实上让搜索跑起来是有难度的,我们不仅想要搜索的速度快,而且还要安装方便(最好是无痛安装),另外模式定义要非常自由(schema free),可以通过HTTP以JSON格式的数据来进行索引,服务器必须是一直可用的(HA高可用,这个不能丢),从一台机器能够扩展到成千上万台,然后搜索必须是实时的(real-time),使用起来一定要简单、支持多租户,我们需要一整套的解决方案,并且是为云构建的。
“让搜索更简单”,这是我们的宣言,“并且要酷,像盆景一样”
elasticsearch的目标是解决上面的所有问题以及更多。她是开源的(Apache2协议),分布式的,RESTful的,构建在Apache Lucene之上的的搜索引擎.
1 、分布式服务器的安装:
sudo service elasticsearch start
来启动服务。
2、安装pyes客户端
使用命令
安装elasticsearch的python的组件。
3、安装pyes的中文分词组件
然后移动的elasticsearch的安装目录/usr/share/elasticsearch/analysis-ik/,
修改配置文件/etc/elasticsearch/elasticsearch.yml
设置插件的路径
path.plugins: /usr/share/elasticsearch/plugins
并添加分词组建配置
6 |
type: org.elasticsearch.index.analysis.IkAnalyzerProvider |
最后下载IK分词使用的词典
- cd /etc/elasticsearch
- wget http://github.com/downloads/medcl/elasticsearch-analysis-ik/ik.zip –no-check-certificate
- unzip ik.zip
- rm ik.zip
重启elasticsearch服务即可。
4、建立索引
09 |
class IndexFiles( object ): |
10 |
def __init__( self ,root): |
11 |
conn = ES( '127.0.0.1:9200' , timeout = 3.5 ) |
13 |
conn.delete_index(INDEX_NAME) |
17 |
conn.create_index(INDEX_NAME) |
20 |
mapping = {u 'content' : { 'boost' : 1.0 , |
25 |
"searchAnalyzer" : "ik" , |
26 |
"term_vector" : "with_positions_offsets" }, |
27 |
u 'name' : { 'boost' : 1.0 , |
32 |
"searchAnalyzer" : "ik" , |
33 |
"term_vector" : "with_positions_offsets" }, |
34 |
u 'dirpath' : { 'boost' : 1.0 , |
39 |
"searchAnalyzer" : "ik" , |
40 |
"term_vector" : "with_positions_offsets" }, |
43 |
conn.put_mapping( "test-type" , { 'properties' :mapping}, [INDEX_NAME]) |
45 |
self .addIndex(conn,root) |
47 |
conn.default_indices = [INDEX_NAME] |
50 |
def addIndex( self ,conn,root): |
52 |
for root, dirnames, filenames in os.walk(root): |
53 |
for filename in filenames: |
54 |
if not filename.endswith( '.txt' ): |
56 |
print "Indexing file " , filename |
58 |
path = os.path.join(root,filename) |
60 |
contents = unicode ( file .read(), 'utf-8' ) |
63 |
conn.index({ 'name' :filename, 'dirpath' :root, 'content' :contents},INDEX_NAME, 'test-type' ) |
65 |
print 'no contents in file %s' ,path |
69 |
if __name__ = = '__main__' : |
70 |
IndexFiles( './txtfiles' ) |
5、搜索并高亮显示
08 |
conn = ES( '127.0.0.1:9200' , timeout = 3.5 ) |
09 |
sq = StringQuery(u '世界末日' , 'content' ) |
10 |
h = HighLighter([ '<b>' ], [ '</b>' ], fragment_size = 20 ) |
12 |
s = Search(sq,highlight = h) |
13 |
s.add_highlight( "content" ) |
14 |
results = conn.search(s,indices = 'txtfiles' ,doc_types = 'test-type' ) |
18 |
if (r._meta.highlight.has_key( "content" )): |
19 |
r[ 'content' ] = r._meta.highlight[u "content" ][ 0 ] |
分享到:
相关推荐
superelasticsearch, 官方 Elasticsearch python 客户端的扩展版本 superelasticsearchsuperelasticsearch是扩展了 Elasticsearch 库的特定版本,以便在它上面提供一些实用功能,使得使用 Elasticsearch更加简单。...
分享一套完整版视频课程——分布式搜索引擎Elasticsearch开发实战基础篇 (ElasticSearch、ELK、搜索引擎、Lucene),本教程旨在带领大家进入搜索引擎领域,从无到有,深入浅出的讲解了什么是搜索引擎,搜索引擎的...
详细介绍elasticsearch在python3环境下完成增删改查(多种查询方式)
比较好用的ElasticSearch客户端工具,可以监控ES集群信息。
分布式搜索引擎ElasticSearch思维导图,ES思维带图。分布式搜索引擎ElasticSearch思维导图,ES思维带图。分布式搜索引擎ElasticSearch思维导图,ES思维带图。分布式搜索引擎ElasticSearch思维导图,ES思维带图。...
elasticsearch-dsl-py:Elasticsearch 的官方高级 Python 客户端
基于SSM架构结合全文搜索引擎ElasticSearch的电影搜索系统项目源码.zip 基于SSM架构结合全文搜索引擎ElasticSearch的电影搜索系统项目源码.zip 基于SSM架构结合全文搜索引擎ElasticSearch的电影搜索系统项目源码.zip...
elasticsearch python 查询的两种方法,具体内容如下所述: from elasticsearch import Elasticsearch es = Elasticsearch res1 = es.search(index=2018-07-31, body={query: {match_all: {}}}) print(es1) {'_...
人工智能-项目实践-搜索引擎-基于python语言开发的千万级别搜索引擎 py-elasticsearch-django EseachDjango文件夹是整个项目的web前后端 采用Django框架,调用redis中间间,ES接口,前端为采用框架. spider文件夹是...
全文搜索引擎ElasticSearch介绍与使用
Elasticsearch_python使用文档,存储于此,便于二次查找 Elasticsearch_python使用文档,存储于此,便于二次查找 Elasticsearch_python使用文档,存储于此,便于二次查找
基于SSM架构结合全文搜索引擎ElasticSearch的电影搜索系统项目 基于SSM架构结合全文搜索引擎ElasticSearch的电影搜索系统项目 基于SSM架构结合全文搜索引擎ElasticSearch的电影搜索系统项目 基于SSM架构结合全文搜索...
pyes, 用于ElasticSearch的python 连接器 Pythonic 路径使用 ElasticSearch ============================= pyes---python ElasticSearch pyes是 Pythonic 自 2010以来使用ElasticSearch的一种方法。这里版本需要 ...
dockerized-elasticsearch-indexer 显示如何在Docker容器中使用Python客户端为Elasticsearch db编制索引的示例,如从indexer文件夹中包含的jsonl文件开始。 添加了一个Kibana容器以浏览索引数据集。 可以在访问该...
Scrapy + Elasticsearch + Django打造全文搜索引擎源码 Scrapy + Elasticsearch + Django打造全文搜索引擎源码 Scrapy + Elasticsearch + Django打造全文搜索引擎源码 Scrapy + Elasticsearch + Django打造...
elasticsearch-8.2.3 windows 版本。 Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户...根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene
Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。 我们建立一个网站或应用程序,并要添加...
制作的elasticsearch的python客户端例子,包括建索引index及mapping配置资料,添加文档、pipline方式添加文档、bulk方式批量添加文档,查询及查询配置资料,高亮及高亮设置资料
牛客Java高级工程师 第6章 Elasticsearch,分布式搜索引擎\6.1 Elasticsearch入门_52studyit.com.wmv ...牛客Java高级工程师 第6章 Elasticsearch,分布式搜索引擎\第六章素材和源码\community-6.3.zip