`

solr搜索引擎_电商搜索(centos服务配置)

 
阅读更多
前期认识
1.lucence:jar包 组成组件 它不是一套完整搜索引擎服务,他里面提供了很多
一些概念方面的抽象,是没有具体实现

2.solr是一种全文搜索引擎,是一套完整的企业级分布式搜索和搜索引擎
是一个企业级,电商平台全文搜索。
国内知名电商平台搜索各种数据 nosql,数据变化不大不像附近人在变,毕竟固定。

全文检索
命中表示
分页搜索
动态聚类
数据集成
富文本处理
高扩展

3.es(Elasticseach)是一种基于lucence的搜索引擎,他和solr区别在于,solr是对已有
各种数据的检索非常稳定高效,es主要是在做实时搜索,搜索的数据量可能随便
变化,他是比solr效率高
es像一些社交软件 随时搜索附近的人

一.下载获取solr 构建我们自己solr搜索平台
http://archive.apache.org/dist/lucene/solr
solr-4.10.3.zip windows
solr-4.10.3.tgz linux

二.solr服务整体结构
http://www.cnblogs.com/HD/p/3977799.html


2.1 运行war
solr-4.10.3/example/webapps/solr.war 在tomcat下webapp运行启动war包,获取solr文件

2.2 配置web.xml
回到tomcat的webapps目录下,记事本打开solr\WEB-INF\web.xml文件。
加入如下代码:在<web-app />节点内的最后。
  <env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>/usr/local/solr-entry/solrhome</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
  </env-entry>


2.3 配置solrhome文件
solr-4.10.3\example\solr,复制所有内容到 solr配置模块 /usr/local/solr-entry/solrhome


2.4 拷贝jar包
打开文件夹:solr-4.10.3\example\lib\ext,复制所有jar包到 tomcat的solr项目下 的webapps\solr\WEB-INF\lib下。


2.5 运行 solr服务平台
localhost:8081/solr/


三.我们用solr分词(IKAnalyzer中文分词器)
分词前要有jar包支持:ik分词插件,
IKAnalyzer2012FF_u1.jar可扩展的插件
用来分词的工具包,这个工具包有支持lucene的接口,所以用它来做分词,分词汉语一句话根据主谓宾智能判断出来。

3.1.IKAnalyzer2012FF_u1.jar 包放到 [b]tomcat的solr项目下 tomcat/webaaps/solr/WEB-INF/lib/IKAnalyzer2012FF_u1.jar [/b] 注:IKAnalyzer2012_u6.jar或其他版本会有问题。


3.2.检索配置文件
ex_stopword.dic 中文词库
IKAnalyzer.cfg.xml 扩展配置文件
mydict.dic 中文词语库
以上三个文件网上下载后放到如下路径
tomcat/webaaps/solr/WEB-INF/classes/



3.3 配置solrhome配置模块,修改schema.xml文件

与其它分词器的配置大体相同,在<types></types>配置项间加一段如下配置:
<!-- 配置中文分词器fieldType TextField和lucene是不一样的 -->
<fieldType name="text_ik" class="solr.TextField">     
     <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>     
</fieldType>

最后就可以使用text_ik了
<!-- 配置中文分词Field -->
<field name="hailong_name" type="text_ik" indexed="true" stored="true" />
<field name="product_name" type="text_ik" indexed="true" stored="true" />  

另:solr默认分词器
    <!-- A general text field that has reasonable, generic
         cross-language defaults: it tokenizes with StandardTokenizer,
	 removes stop words from case-insensitive "stopwords.txt"
	 (empty by default), and down cases.  At query time only, it
	 also applies synonyms. -->
    <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
      <analyzer type="index">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
        <!-- in this example, we will only use synonyms at query time
        <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
        -->
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
      <analyzer type="query">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
    </fieldType>


智能分词 像人一样智能判断一条语句的主谓宾
我喜欢白富美 =>我|喜欢|白|富|美
经常更新词库

大数据云计算:洞悉先机(每一个人的心里喜好都有被某知名电商平台分析过,只要是他们的会员)
大数据企业 索引(直接拥有)

四.solr与电商
电商平台用solr全文检索 模块


简单介绍
a.简单检索
页面检索:
java solrj客户端检索
b.复杂检索
简单检索:
Dataimport这个功能 将数据库solr的电商数据 全部solr索引到我们的真实数据库。
Dataimport功能各种类型的数据 映射 到我们的服务solr。
索引(直接拥有数据的地址)里面id,查询非常
数据库的数据不是存在solr服务里,
4.1 建立映射
4.1.1 添加jar包到tomcat的solr项目
solr-4.10.3/dist/solr-dataimporthandler-4.10.3.jar 引入到solr服务中:

加入到apache-tomcat\webapps\solr\WEB-INF\lib

4.1.2 配置solrconfig.xml(配置dataimport handler)
<!-- add by hailong 20170308 -->
   <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
	<lst name="defaults">
	     <!-- <str name="config">/usr/local/solr-entry/solrhome/conllection1/conf/mysql-data-config.xml</str>-->
		 <!-- 放在同一个目录下 -->
        <str name="config">mysql-data-config.xml</str>
    </lst>
  </requestHandler>

以上代码配置加入到 /usr/local/solr-entry/solrhome/conllection1/conf/solrconfig.xml
添加位置根据自己的习惯,便于查找即可,我这里放到系统内置最后一个handler,replication之下。
注:solrconfig.xml 还需要mysql-connector-java-5.1.36.jar驱动包


4.1.3 添加mysql-data-config.xml文件(配置数据源)
添加mysql-data-config.xml文件,映射到数据库
<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
    <dataSource type="JdbcDataSource"
		driver="com.mysql.jdbc.Driver" 
		url="jdbc:mysql://192.168.92.129:3306/solr_test" 
		user="root" 
		password="123456"/>
    <document>
        <entity name="product"  transformer="HTMLStripTransformer" 
               query="SELECT pid, product_name, catalog_name, product_price, product_description, product_picture FROM product">
                <field column="pid" name="id" />
                <field column="product_name" name="product_name" />
		<field column="catalog_name" name="catalog_name" />
		<field column="product_price" name="product_price" />
		<field column="product_description" name="description" />
                <field column="product_picture" name="product_picture" />
        </entity>
    </document>
</dataConfig>

dataSource节点配置:
name: dataSource的名称,配置文件可以有多个datasource,使用name区分。
type:数据源类型,如JDBC
driver:数据库驱动包,去提前放到lib目录下
url:数据库连接url
<field>字段配置:
column:数据库查询列名称
name:Schema.xml中的字段

文件位置:

column与name对应

注:product_name作为搜索字段,需要设定type="text_ik",不然做不到分词查询。

4.1.4 修改schema.xml文件(配置数据源)
添加field name属性,此属性对应mysql-data-config.xml的<field name的值 :

以上配置完成

4.1.5 执行创建索引
再次启动solr:
启动成功,把mysql创建索引到doc文件:

查询doc:

取得的是mysql的数据:

以上配置完成,可以结合spring java代码实现电商plp商品列表加载solr索引信息了。

4.1.6 配置solr日志
有些问题在tomcat无法打印出日志,不方便查出原因,配置solr日志,可查找solr出的问题:
在tomcat的solr工程下添加日志属性文件

#  Logging level
log4j.rootLogger=WARN, file

#- size rotation with log cleanup.
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.MaxFileSize=4MB
log4j.appender.file.MaxBackupIndex=9

#- File to log to and log format
log4j.appender.file.File=logs/solr.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%-5p - %d{yyyy-MM-dd HH:mm:ss.SSS}; %C; %m\n


在tomcat/webapps/solr/WEB-INF/lib 下查看之前导入过的日志jar包:


运行后出现日志文件 tomcat/bin/logs/solr.log:


可能出现错误:
org.apache.solr.common.SolrException: Document is missing mandatory uniqueKey field: id

在solr建立索引的时候,如果你提交的doc中没有 id 这个Field,结果Solr在建立索引时候出现如下错误:
org.apache.solr.common.SolrException: Document [null] missing required field: id

主要是因为Solr 的solrconfig配置文件中定义了<uniqueKey>id</uniqueKey>,默认了ID 是唯一的。
如果你的索引字段不需要ID,就可以把这个改掉.
<uniqueKey>kwid</uniqueKey> 

并将id字段里的required="true"属相,
添加到kwid字段。
<field name="pid" type="string" indexed="true" stored="true" required="true"/> 



其他细节:
组合域
多域组合查询
明细化控制
命中表示
动态聚类
富文本处理
数据集成

web应用使用solr总体思路: java服务器映射到solr服务(httpSolrServer),solr的web.xml映射到entry solrhome实体数据(实体配置模块),solr实体数据映射数据库。
电商中应用:分页,返回plp对象list,且设置好高亮显示。
参考:
属性定义http://www.cnblogs.com/rainbowzc/p/3695058.html
结合solr服务实现搜索引擎的java代码
http://572327713.iteye.com/blog/2360936
http://www.cnblogs.com/easong/p/6258280.html
http://www.w2bc.com/article/204862
  • 大小: 273.1 KB
  • 大小: 490.5 KB
  • 大小: 184.6 KB
  • 大小: 262.6 KB
  • 大小: 70.2 KB
  • 大小: 49.9 KB
  • 大小: 44.7 KB
  • 大小: 20 KB
  • 大小: 20.9 KB
  • 大小: 104.3 KB
  • 大小: 23.4 KB
  • 大小: 25.9 KB
  • 大小: 30.8 KB
  • 大小: 43.3 KB
  • 大小: 46.2 KB
  • 大小: 85.7 KB
  • 大小: 54.4 KB
  • 大小: 101.1 KB
  • 大小: 63.1 KB
  • 大小: 74.2 KB
  • 大小: 46.9 KB
  • 大小: 132.6 KB
  • 大小: 44.8 KB
  • 大小: 20.6 KB
  • 大小: 45.6 KB
  • 大小: 11.7 KB
  • 大小: 106.3 KB
  • 大小: 89.1 KB
  • 大小: 16.3 KB
  • 大小: 50.3 KB
  • 大小: 88.8 KB
分享到:
评论

相关推荐

    es与solr的区别_solr_ES_es与solr的区别_elasticsearch_

    在大数据和搜索引擎领域,Elasticsearch (ES) 和 Apache Solr 都是广泛使用的开源技术,它们都基于 Lucene 库,提供高性能、可扩展的全文搜索和分析能力。然而,两者在设计哲学、使用场景、功能特性以及社区支持等...

    solr_Tomcat_lib包

    它提供了分布式、可扩展、高可用性的搜索和分析引擎服务。在搭建Solr环境时,`solr_Tomcat_lib`包扮演了关键角色,因为它是Solr在Tomcat容器中运行所需的库文件集合。 首先,让我们详细了解`lib`目录。这个目录通常...

    solr_3.5_配置及应用

    Solr 是一个开源的全文搜索引擎,它提供了高效且可扩展的搜索和索引能力。在3.5版本中,Solr 已经成为一个成熟的技术,广泛应用于网站的全文检索、商品搜索、文档检索等多个场景。本文将深入探讨 Solr 3.5 的配置...

    solr_solr_lucene_

    Solr是一个高性能,采用Java开发,...同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。

    solr搜索引擎的使用介绍

    Solr搜索引擎的使用介绍 Solr,全称为Apache Solr,是Apache软件基金会的一个开源项目,基于Java开发,是一款高效、灵活且强大的全文检索服务引擎。它构建在Lucene库之上,提供了更高级别的企业级搜索功能,如...

    solr-config_solrj-demo.rar_DEMO_solr_solr的j

    Solr是Apache Lucene项目的一个子项目,是一个高性能、基于Java的全文检索服务器。它提供了分布式搜索、近实时索引、高可用...通过深入学习和实践,你可以提升对Solr的理解,为你的项目带来更高效的搜索引擎解决方案。

    ikanalyzer-solr8.4.0_solr8_solr_ikanalyzer_中文分词_

    Solr8.4.0 是 Apache Solr 的一个版本,这是一个高度可配置、高性能的全文搜索和分析引擎,广泛用于构建企业级搜索应用。 在 Solr 中,ikanalyzer 是一个重要的组件,它通过自定义Analyzer来实现中文的分词处理。...

    solr_v440_5001+zookeeper2181

    SolrCloud是Apache Solr的一种分布式搜索和索引服务模式,它基于ZooKeeper进行集群管理和协调。在本文中,我们将深入探讨如何部署SolrCloud,并...正确部署和配置SolrCloud,对于实现高效、可靠的搜索服务至关重要。

    solrCloud5.2.1 + tomcat7 + zookeeper3.4.6

    【SolrCloud5.2.1 + Tomcat7 + ...同时,不要忘记对Solr的配置文件(如`solrconfig.xml`和`schema.xml`)进行相应的调整,以满足特定的搜索需求。最后,记得定期备份重要数据,确保系统的稳定性和数据的安全性。

    Solr+Paodng中文搜索引擎__Demo

    Solr+Paoding中文搜索引擎Demo是一个综合性的项目,旨在展示如何结合Apache Solr与Paoding中文分词器来构建一个高效、精准的中文搜索引擎。Apache Solr是一个流行的开源全文搜索服务器,而Paoding中文分词器是专为...

    solr_5.0_tomcat7_IKAnalyzer中文分词安装及demo

    Solr 5.0 是一个基于Lucene的开源搜索引擎服务器,它提供了全文检索、高亮显示、faceting、拼写检查、实时索引等高级功能。Tomcat 7 是一个流行的Java Servlet容器,用于部署Java web应用程序,包括Solr。IKAnalyzer...

    solr_3_2_0-server-8.11.2-1.el7.noarch.rpm

    solr_3_2_0-server-8.11.2-1.el7.noarch

    solr_3_2_0-doc-8.11.2-1.el7.noarch.rpm

    solr_3_2_0-doc-8.11.2-1.el7.noarch

    solr搜索引擎

    Solr搜索引擎是一款强大的开源全文搜索和分析引擎,由Apache软件基金会开发并维护。它主要设计用于处理大量数据的高效检索,支持多种数据源,并提供高度可扩展性和容错性。在深入探讨Solr之前,我们先来理解一下什么...

    solr服务器_solr_

    Solr服务器是Apache Lucene项目的一个子项目,是...总的来说,Solr服务器是企业级搜索引擎的重要选择,适用于电子商务、新闻门户、内部文档检索等多种场景,它的强大功能和灵活性使得它在大数据时代得到了广泛的应用。

    apache-solr-1.4.0.zip_apache-solr _apache-solr-1.4.0_apache-solr

    Apache Solr 是一个开源的企业级搜索平台,由Apache软件基金会开发。...通过对这些源码的研究,开发者可以了解到Solr是如何处理索引、查询、排序和扩展功能的,进一步提升自己的搜索引擎开发技能。

    Solr 搜索引擎 asp.net实现 示例详细操作步骤

    Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http G Solr et操作提出查找请求,并得到XML...

    Solr_1.4_Enterprise_Search_Server.pdf

    《Solr 1.4企业级搜索服务器》一书详细介绍了Apache Solr 1.4版本,这是一个开源的、高性能的、全功能的企业级搜索平台。本书由David Smiley和Eric Pugh共同编写,旨在帮助读者掌握如何利用Solr增强搜索体验,包括...

    Apache_solr_4_cookbook.pdf

    Apache Solr 是一个基于 Apache Lucene 的开源搜索引擎,为各种应用提供了搜索功能。它具有高效、可靠和强大的特点,广泛应用于企业级搜索、互联网搜索和数据分析。Solr 提供了包括全文搜索、高亮显示、自动拼写更正...

    solr配置搜索引擎平台

    solr配置搜索引擎平台 一、 SOLR搭建企业搜索平台 二.... 三,,,,

Global site tag (gtag.js) - Google Analytics