标签分类
当前位置:首页 > 图形处理电子书 > Solr电子书网盘下载
Solr实战 Solr实战
ASR-06

ASR-06 提供上传

资源
40
粉丝
31
喜欢
169
评论
20

    Solr实战 PDF 高清扫描版

    Solr电子书
    • 发布时间:

    给大家带来的一篇关于Solr相关的电子书资源,介绍了关于Solr、Solr实战方面的内容,本书是由电子工业出版社出版,格式为PDF,资源大小132.6 MB,崔.格兰杰编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:8.7,更多相关的学习资源可以参阅 图形处理电子书、等栏目。

  • Solr实战 PDF 下载
  • 下载地址:https://pan.baidu.com/s/1WC5zi6WmqyeIU0hTvFWsJw
  • 分享码:7qw4
  • Solr实战 PDF

    《Solr实战》介绍了当下最流行的开源搜索技术解决方案Solr。在搜索引擎视域下,循序渐进地介绍了Solr是什么、Solr能做什么,以及如何更好地使用Solr进行开发。在搜索基础层,《Solr实战》从Solr的快速搭建入手,介绍了Solr背后的信息检索基本概念,之后重点讲解了构建一个搜索引擎所需的核心模块:索引构建、文本分析、执行搜索及处理搜索结果。在搜索功能层,详细介绍了Solr的四大增强型搜索功能:分面搜索、搜索结果高亮、查询建议、搜索结果分组等。在搜索研究的进阶层,介绍了SolrCloud、多语种搜索及复杂查询操作等。最后,围绕搜索引擎的本质核心问题“相关度”展开了讨论与展望。

    本书适合搜索技术工程师、搜索应用设计者以及对搜索引擎技术感兴趣的读者阅读,也可作为高校计算机专业信息技术方向、信息管理与信息系统专业等的课程参考资料。

    目录

    • 第1部分 初识 Solr. 1
    • 1 Solr入门 2
    • 2 Solr上手.23
    • 3 Solr基础理论 45
    • 4 配置 Solr.77
    • 5 创建索引112
    • 6 文本分析157
    • 第2部分 Solr的核心功能 191
    • 7 执行查询和处理搜索结果. 192
    • 8 分面搜索242
    • 9 搜索结果高亮272
    • 10 查询建议 297
    • 11 结果分组 /字段折叠321
    • 12 搭建 Solr生产环境.347
    • 第3部分 Solr进阶.393
    • 13 SolrCloud.394
    • 14 多语种搜索 439
    • 15 复杂查询操作489
    • 16 精通相关度 533
    • 附录A 与 Solr代码库打交道 578
    • 附录B 语种字段类型配置 587
    • 附录C 有用的数据导入配置 593

    读书笔记

    对python 操作solr索引数据的实例详解

    测试代码1:

    def test(self):
      data = {"add": {"doc": {"id": "100001", "*字段名*": u"我是一个大好人"}}}
      params = {"boost": 1.0, "overwrite": "true", "commitWithin": 1000}
      url = 'http://127.0.0.1:8983/solr/mycore/update?wt=json'
      headers = {"Content-Type": "application/json"}
      r = requests.post(url, json=data, params=params, headers=headers)
      print r.text
    
    
     def Index_data(self):
      solr = pysolr.Solr('http://127.0.0.1:8983/solr/mycore/', timeout=10)
    
      # How you'd index data.
      result = solr.add([
       {
        "id": "doc_1",
        "title": "A test document",
       },
       {
        "id": "doc_2",
        "title": "The Banana: Tasty or Dangerous?",
       },
      ])
      print result
    

    测试代码2:

    实际数据:

    对python 操作solr索引数据的实例详解

    def Index_Data_FromCSV(self, csvfile):
      '''
       从CSV文件中读取数据,并索引到solr中
       :param csvfile: csv文件,包括完整路径
       :return:
       '''
      list = CSVOP.ReadCSV(csvfile)
      index = 0
      doc = {}
      params = {"boost": 1.0, "overwrite": "true", "commitWithin": 1000}
      url = 'http://127.0.0.1:8983/solr/mycore/update?wt=json'
      headers = {"Content-Type": "application/json"}
      for item in list:
       if index > 0: # 第一行是标题
        try:
         doc['title'] = item[0].decode('GB2312')
         doc['link'] = item[1]
         # doc['date'] = item[2]
         doc['source'] = item[3].decode('GB2312')
         doc['keyword'] = item[4].decode('GB2312')
         data = {"add": {"doc": doc}}
         r = requests.post(url, json=data, params=params, headers=headers)
         print r.text
        except Exception,e:
         print e.message
    
       print index
       index += 1
    
    #pysolr客户端代码
     def pysolr_Index_Data_FromCSV(self, csvfile,url='http://127.0.0.1:8983/solr/mycore/'):
      '''
       从CSV文件中读取数据,并索引到solr中
       :param csvfile: csv文件,包括完整路径
       :return:
       '''
      list = CSVOP.ReadCSV(csvfile)
      index = 0
      listdocs = []
      for item in list:
       if index > 0: # 第一行是标题
        doc = {}
        try:
         doc['title'] = item[0].decode('GB2312')
         doc['link'] = item[1]
         # doc['date'] = item[2]
         doc['source'] = item[3].decode('GB2312')
         doc['keyword'] = item[4].decode('GB2312')
         listdocs.append(doc)
        except Exception,e:
         print e.message
       index += 1
      solr = pysolr.Solr(url, timeout=10)
      result = solr.add(listdocs)
      print result
    

    查询代码:

    def search_data(self,message='视频'):
      url = 'http://127.0.0.1:8983/solr/mycore/select?q=title:"\%s"&wt=json&indent=true' % message
      r = requests.get(url, verify=False)
      print r.text
      r = r.json()['response']['numFound']
      print message + ":" + str(r)
      
      #pysolr客户端
      def search_data(self,where='视频',url='http://127.0.0.1:8983/solr/mycore/'):
      solr = pysolr.Solr(url, timeout=10)
      dict = {'start':10,'rows': 30,'fl':'title,keyword,source,link'}
      result = solr.search('title:视频',**dict)
      # result = solr.search('title:视频')
      # print result.raw_response['response']['numFound']
    
      for item in result:
       print 'keyword: %s'% item['keyword']
       print 'title: %s'% item['title']
       print 'source: %s'% item['source']
       print 'link: %s'% item['link']
       print ' 
    

    '

    输出结果:

    {
     "responseHeader":{
     "status":0,
     "QTime":0,
     "params":{
      "q":"title:\"\\视频\"",
      "indent":"true",
      "wt":"json"}},
     "response":{"numFound":123,"start":0,"docs":[
      {
      "source":"中彩网",
      "link":"http://www.zhcw.com/video/kaijiangshipin-3D/11981126.shtml",
      "keyword":"视频",
      "title":"福彩3D开奖 视频 -中彩 视频",
      "id":"2f0a9d21-3771-4efa-a0cc-e0484cc97993",
      "_version_":1584214368617234432},
      {
      "source":"新浪视频",
      "link":"http://video.sina.com.cn/news/spj/topvideoes20170707/?opsubject_id=top1",
      "keyword":"视频",
      "title":"今日热门 视频 汇总20170707",
      "id":"c8aae0af-01e9-491f-b999-24b97004a4ba",
      "_version_":1584214367507841024},
      {
      "source":"网易新闻",
      "link":"http://news.163.com/17/0707/13/COOCNUIE00018AOR.html",
      "keyword":"视频",
      "title":"网传"兰桂坊附近不雅 视频 " 警方:传播 视频 将追责",
      "id":"353de48d-ede7-481b-89d3-bc20ab4b3884",
      "_version_":1584214367821365248},
      {
      "source":"凤凰视频",
      "link":"http://v.ifeng.com/video_7480871.shtml",
      "keyword":"视频",
      "title":"创想动画片:花粉过敏症的痛谁懂-凤凰 视频 -最具媒体品质的综合 视频 ...",
      "id":"dc5f19c4-180f-4004-a0db-4499d875a60f",
      "_version_":1584214366819975168},
      {
      "source":"凤凰视频",
      "link":"http://v.ifeng.com/video_7805858.shtml",
      "keyword":"视频",
      "title":"节气说:小暑时节就该这样养生-凤凰 视频 -最具媒体品质的综合 视频 门...",
      "id":"5e9eb7a7-48b8-4e41-9514-7712ae619d9a",
      "_version_":1584214367516229632},
      {
      "source":"凤凰视频",
      "link":"http://v.ifeng.com/video_7483506.shtml",
      "keyword":"视频",
      "title":"听导演讲《神奇女侠》的故事 -凤凰 视频 -最具媒体品质的综合 视频 门户-...",
      "id":"6b1482f1-c0c9-479f-bef7-7de324fb9372",
      "_version_":1584214367647301632},
      {
      "source":"汽车杂志",
      "link":"http://www.jiemian.com/article/1445267.html",
      "keyword":"视频",
      "title":"【视频】欧宝最近找了一堆穿睡衣的辣妈拍了一段超牛的视频",
      "id":"1d327555-a6f3-4513-9a21-43d59418ab82",
      "_version_":1584214368157958144},
      {
      "source":"味觉大师",
      "link":"http://www.jiemian.com/article/1453545.html",
      "keyword":"视频",
      "title":"【视频】大董没有肉的肉味烧茄子",
      "id":"7d777870-93cb-4c18-a32b-734af8f133f1",
      "_version_":1584213891451191296},
      {
      "source":"新浪汽车",
      "link":"http://auto.sina.com.cn/video/zz/2017-07-07/detail-ifyhwehx5311889.shtml",
      "keyword":"视频",
      "title":"视频 :两大神车pk!高尔夫思域怎么选?",
      "id":"3a50b303-6b54-4da3-aee1-a61c678c752d",
      "_version_":1584213892090822656},
      {
      "source":"味觉大师",
      "link":"http://www.jiemian.com/article/1453545.html",
      "keyword":"视频",
      "title":"【视频】大董没有肉的肉味烧茄子",
      "id":"01da8e11-77bc-4c31-ba3a-ba668e846d9d",
      "_version_":1584214366191878144}]
     }}

    完整代码:

    #-*- coding: UTF-8 -*-
    import csv
    import os
    import codecs
    
    
    def ReadCSV(filename):
     if os.path.exists(filename):
      with open(filename, 'r') as f:
       reader = csv.reader(f)
       list = []
       for item in reader:
        list.append(item)
       return list
    
    #################################################
    #coding=utf-8
    import json
    import requests
    
    import os
    import time
    from os import walk
    import CSVOP
    from datetime import datetime
    import pysolr
    import math
    
    class SolrClientObj:
    
     def test(self):
      data = {"add": {"doc": {"id": "100001", "*字段名*": u"我是一个大好人"}}}
      params = {"boost": 1.0, "overwrite": "true", "commitWithin": 1000}
      url = 'http://127.0.0.1:8983/solr/mycore/update?wt=json'
      headers = {"Content-Type": "application/json"}
      r = requests.post(url, json=data, params=params, headers=headers)
      print r.text
    
     def pysolr_Index_Data_FromCSV(self, csvfile,url='http://127.0.0.1:8983/solr/mycore/'):
      '''
       从CSV文件中读取数据,并索引到solr中
       :param csvfile: csv文件,包括完整路径
       :return:
       '''
      list = CSVOP.ReadCSV(csvfile)
      index = 0
      listdocs = []
      for item in list:
       if index > 0: # 第一行是标题
        doc = {}
        try:
         doc['title'] = item[0].decode('GB2312')
         doc['link'] = item[1]
         # doc['date'] = item[2]
         doc['source'] = item[3].decode('GB2312')
         doc['keyword'] = item[4].decode('GB2312')
         listdocs.append(doc)
        except Exception,e:
         print e.message
       index += 1
      solr = pysolr.Solr(url, timeout=10)
      result = solr.add(listdocs)
      print result
    
     def Index_Data_FromCSV(self, csvfile):
      '''
       从CSV文件中读取数据,并索引到solr中
       :param csvfile: csv文件,包括完整路径
       :return:
       '''
      list = CSVOP.ReadCSV(csvfile)
      index = 0
      doc = {}
      params = {"boost": 1.0, "overwrite": "true", "commitWithin": 1000}
      url = 'http://127.0.0.1:8983/solr/mycore/update?wt=json'
      headers = {"Content-Type": "application/json"}
      for item in list:
       if index > 0: # 第一行是标题
        try:
         doc['title'] = item[0].decode('GB2312')
         doc['link'] = item[1]
         # doc['date'] = item[2]
         doc['source'] = item[3].decode('GB2312')
         doc['keyword'] = item[4].decode('GB2312')
         data = {"add": {"doc": doc}}
         r = requests.post(url, json=data, params=params, headers=headers)
         print r.text
        except Exception,e:
         print e.message
    
       print index
       index += 1
    
     def Index_data(self):
      solr = pysolr.Solr('http://127.0.0.1:8983/solr/mycore/', timeout=10)
    
      # How you'd index data.
      result = solr.add([
       {
        "id": "doc_1",
        "title": "A test document",
       },
       {
        "id": "doc_2",
        "title": "The Banana: Tasty or Dangerous?",
       },
      ])
      print result
    
     def search_data(self,where='视频',url='http://127.0.0.1:8983/solr/mycore/'):
      solr = pysolr.Solr(url, timeout=10)
      dict = {'start':10,'rows': 30,'fl':'title,keyword,source,link'}
      result = solr.search('title:视频',**dict)
      # result = solr.search('title:视频')
      # print result.raw_response['response']['numFound']
    
      for item in result:
       print 'keyword: %s'% item['keyword']
       print 'title: %s'% item['title']
       print 'source: %s'% item['source']
       print 'link: %s'% item['link']
       print '    '
    
     def delete_index_data(self,where,url='http://127.0.0.1:8983/solr/mycore/'):
      '''
      删除索引
      :param where: 删除的条件
      :param url: url
      :return:
      '''
      solr = pysolr.Solr(url, timeout=10)
      # solr.delete(id=where) #id='id1':删除id为“id1”的索引
      result = solr.delete(q=where) #q='*:*'删除所有索引
      print result
    
    
    obj = SolrClientObj()
    # obj.delete_index_data('*:*') #删除所有索引
    # obj.Index_data()
    # obj.search_data()
    # obj.delete_index_data('doc_1')
    obj.search_data('视频')
    # csvfile = 'D:/work/Solr/other/exportExcels/2017-07-07_info.csv'
    # obj.pysolr_Index_Data_FromCSV(csvfile)
    

    以上这篇对python 操作solr索引数据的实例详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。

    上一篇:Web接口开发与自动化测试:基于Python语言  下一篇:高性能Docker

    展开 +

    收起 -

    码小辫二维码
     ←点击下载即可登录

    Solr相关电子书
    学习笔记
    网友NO.558349

    Ubuntu16.04安装部署solr7的图文详细教程

    本文为大家分享了Ubuntu16.04安装部署solr7的具体方法,供大家参考,具体内容如下 VMware12.0+Ubuntu16.04+jdk1.8.0_171+Tomcat8.0.53+solr7.4.0 首先看看安装成功的界面,纪念一下,哈哈哈…… 在安装部署solr之前,先安装好jdk1.8和Tomcat8.0的环境,然后对下载好的solr进行解压: 解压后的文件夹有以下内容: 然后我们进入到/server/solr-webapp目录,里面有一个webapp,将这个webapp复制到/usr/local/solr/tomcat/apache-tomcat-8.0.53/webapps下并从命名为solr(名字随便起),这里命名为solr。 将~/Downloads/solr-7.4.0/server/lib/ext下的所有jar都复制到/usr/local/solr/tomcat/apache-tomcat-8.0.53/webapps/solr/WEB-INF/lib下面。(这个solr就是上面一步的solr) 将~/Downloads/solr-7.4.0/server/lib目录下metrics相关的jar都复制到/usr/local/solr/tomcat/apache-tomcat-8.0.53/webapps/solr/WEB-INF/lib下面。 将~/Downloads/solr-7.4.0/server/resources下的jetty-logging.properties和log4j2.xml两个文件复制到/usr/local/solr/tomcat/apache-tomcat-8.0.53/webapps/solr/WEB-INF/classes下面。(classes文件夹如果没有需要自己创建,这是日志文件) 创建solrhome:复制~/Downloads/solr-7.4.0/server下的solr文件夹,到任意目录处(可以重新命名,我没有重新命名,我的solrhome路径为:/usr/local/solr/solrhome),自定义solrhome 配置solrhome路径,修改/usr/local/solr/tomcat/apache-tomcat-8.0.53/webapps/solr/WE……

    网友NO.826690

    SpringBoot整合Redis、ApachSolr和SpringSession的示例

    本文介绍了SpringBoot整合Redis、ApachSolr和SpringSession,分享给大家,具体如下: 一、简介 SpringBoot自从问世以来,以其方便的配置受到了广大开发者的青睐。它提供了各种starter简化很多繁琐的配置。SpringBoot整合Druid、Mybatis已经司空见惯,在这里就不详细介绍了。今天我们要介绍的是使用SpringBoot整合Redis、ApacheSolr和SpringSession。 二、SpringBoot整合Redis Redis是大家比较常用的缓存之一,一般Redis都会搭建高可用(HA),Cluster或者Sentinel。具体的搭建方法请参照Redis官方文档。我们这里已Sentinel举例,搭建RedisSentinel一般都是3个节点,Redis的端口一般是6379,Sentinel的端口一般是26379。 我们要使用SpringBoot整合Redis,首先要把对应的Redis的starter加入到POM中: dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-data-redis/artifactId/dependency 引入jar包以后,我们直接在application.properties文件中,添加RedisSentinel的配置即可完成整合。 spring.redis.sentinel.master=mymasterspring.redis.sentinel.nodes=192.168.2.233:26379,192.168.2.234:26379,192.168.2.235:26379spring.redis.pool.max-active=1024spring.redis.pool.max-idle=200spring.redis.pool.min-idle=100spring.redis.pool.max-wait=10000 sentinel.master是master的名称,我们搭建RedisSentinel时使用的默认的名称mymaster。 sentinel.nodes是sentinel的节点,注意是sentinel的节点,……

    网友NO.574966

    对python 操作solr索引数据的实例详解

    测试代码1: def test(self): data = {"add": {"doc": {"id": "100001", "*字段名*": u"我是一个大好人"}}} params = {"boost": 1.0, "overwrite": "true", "commitWithin": 1000} url = 'http://127.0.0.1:8983/solr/mycore/update?wt=json' headers = {"Content-Type": "application/json"} r = requests.post(url, json=data, params=params, headers=headers) print r.text def Index_data(self): solr = pysolr.Solr('http://127.0.0.1:8983/solr/mycore/', timeout=10) # How you'd index data. result = solr.add([ { "id": "doc_1", "title": "A test document", }, { "id": "doc_2", "title": "The Banana: Tasty or Dangerous?", }, ]) print result 测试代码2: 实际数据: def Index_Data_FromCSV(self, csvfile): ''' 从CSV文件中读取数据,并索引到solr中 :param csvfile: csv文件,包括完整路径 :return: ''' list = CSVOP.ReadCSV(csvfile) index = 0 doc = {} params = {"boost": 1.0, "overwrite": "true", "commitWithin": 1000} url = 'http://127.0.0.1:8983/solr/mycore/update?wt=json' headers = {"Content-Type": "application/json"} for item in list: if index 0: # 第一行是标题 try: doc['title'] = item[0].decode('GB2312') doc['link'] = item[1] # doc['date'] = item[2] doc['source'] = item[3].decode('GB2312') doc['keyword'] = item[4].decode('GB2312') data = {"add": {"doc": doc}} r = requests.post(url, json=data, params=params, headers=headers) print r.text except Exception,e: print e.message print index index += 1#pysolr客户端代码 def pysolr_Index_Data_FromCSV(self, csvfile,url='ht……

    Copyright 2018-2019 xz577.com 码农之家

    版权责任说明