参考:
wiki: http://wiki.apache.org/solr/
步骤:
1.
下载并解压solr,jetty,我用的版本是solr-5.3.1,jetty-9.3.6
2.
将solr的server/solr-webapp/webapp文件夹复制到jetty的webapps目录下,并将文件夹名字webapp改名为solr, 同时将server\lib\ext目录下的所有jar包复制到jetty的lib\ext目录下
3.
jetty根目录下新建一个文件夹solr
4.
复制solr的server\solr目录下的solr.xml文件至jetty的solr目录下
5.
在jetty的solr目录下创建core1文件夹
6.
复制solr的example\example-DIH\solr\solr目录下的全部文件(core.properties文件和conf文件夹)到jetty的solr/core1目录下
7.
复制solr的dist目录下的solr-dataimporthandler-5.3.1.jar复制到jetty的webapps\solr\WEB-INF\lib目录下
8.
复制数据库jdbc驱动jar(例如mysql的mysql-connector-java-5.1.6.jar)到jetty的webapps\solr\WEB-INF\lib目录下
9.
在solr的core1/conf目录下的solrconfig.xml文件中添加内容(在config标签内添加):
<requestHandler name="/dataimport" class="solr.DataImportHandler">
<lst name="defaults">
<str name="config">solr-data-config.xml</str>
</lst>
</requestHandler>
10.
修改core1/conf目录下solr-data-config.xml的内容为(根据本地数据库具体情况配置):
<dataConfig>
<dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/test" user="root" password="root"/>
<document>
<entity name="_user" query="select * from _user">
<field column="id" name="id" />
<field column="age" name="age" />
<field column="username" name="username"/>
<field column="password" name="password"/>
</entity>
</document>
</dataConfig>
11.
修改core1/conf目录下schema.xml,添加表中的字段定义(如果主键为id,就不需要添加id的field了):
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="age" type="int" indexed="true" stored="true" required="false" multiValued="false" />
<field name="username" type="string" indexed="true" stored="true" required="false" multiValued="false" />
<field name="password" type="string" indexed="true" stored="true" required="false" multiValued="false" />
12.
启动jetty:在jetty目录下,执行命令:java -jar start.jar即可
13.
打开http://localhost:8080/solr/
在左侧,core selector下拉框中选中core1,点击Dataimport,可以看到Command有full-import和delta-import两种(具体区别可自行搜索),第一次可以选full-import,Entity下拉框面选_user,选中“Auto-Refresh Status”,点击Execute,
可以看到右边状态:Indexing,最后变为Indexing completed表示索引已经建好了。
然后点击左侧的Query,在q下面的输入框中输入:password:aaa,点击Execute Query来从索引中查询password为aaa的结果。
结束。。。
java客户端操作solr:参考:http://wiki.apache.org/solr/Solrj
以及:
SolrJ增删查
package com.tch.test.solr.test;
import java.io.IOException;
import java.util.List;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.impl.XMLResponseParser;
import org.apache.solr.client.solrj.response.QueryResponse;
import com.tch.test.solr.entity.User;
public class TestSolr {
public static void main(String[] args) throws IOException, SolrServerException {
String url = "http://localhost:8080/solr/core1";
HttpSolrClient client = new HttpSolrClient(url);
client.setConnectionTimeout(5000);
client.setParser(new XMLResponseParser()); // binary parser is used by default
client.setSoTimeout(1000); // socket read timeout
client.setDefaultMaxConnectionsPerHost(100);
client.setMaxTotalConnections(100);
client.setFollowRedirects(false); // defaults to false
client.setAllowCompression(true);
//删除操作
//client.deleteByQuery("*:*");
//插入
User item = new User();
item.setId("111");
item.setAge(25);
item.setIsCoverImage(1);
item.setUsername("username-1");
item.setPassword("password-1");
client.addBean(item);
User item_cn = new User();
item_cn.setId("222");
item_cn.setAge(26);
item_cn.setIsCoverImage(0);
item_cn.setUsername("中文");
item_cn.setPassword("password-2");
client.addBean(item_cn);
// commit
client.commit();
//查询
SolrQuery query = new SolrQuery();
query.setQuery("*:*");
//分页
query.setStart(10);
query.setRows(20);
//query.addSort(new SortClause("id", ORDER.desc));//结果排序
QueryResponse response = client.query(query);
List<User> items = response.getBeans(User.class);
for (User i : items) {
System.out.println(i);
}
System.out.println(response.getResults());
client.close();
}
}
相关推荐
《跟益达学Solr5之从MySQL数据库导入数据并索引》这篇文章主要探讨了如何使用Apache Solr 5从MySQL数据库中导入数据并建立索引,以便进行高效的全文搜索。Solr是一款强大的开源搜索服务器,它提供了丰富的查询语言、...
本Demo将展示如何使用Solr 7.4与MySQL数据库集成,实现数据导入,并结合IK分词器提升中文搜索体验。 首先,你需要下载并安装Solr 7.4.0。解压压缩包`solr-7.4.0`,这是一个包含Solr服务器和配置文件的完整包。在`...
在传统的全量索引中,Solr会一次性将所有数据库数据导入索引。然而,随着数据的不断增长,全量索引不仅耗时,而且可能对系统造成较大压力。增量索引则只对新插入、更新或删除的数据进行索引,显著提高了效率和性能。...
在本案例中,我们将探讨如何将 MySQL 数据库中的数据导入到 Solr 5.3.1 中,以便进行高效的全文检索。 首先,我们需要理解 Solr 的核心组件——Schema.xml 文件。这是 Solr 的模式定义文件,它定义了索引字段、字段...
在SOLR中,这通常通过DataImportHandler (DIH) 实现,这是一个内建的数据导入工具,允许从外部数据源如MySQL获取数据并建立索引。配置过程包括以下几个步骤: 1. **配置SOLR核心**:在SOLR的`solrconfig.xml`配置...
这个插件使我们能够设置定时任务,定期从数据库中抓取新的或更新的数据并导入到Solr索引中,从而保持索引与数据库的同步。 描述中提到了该插件适用于Solr 7.7.2版本,并且已经包含了账号密码验证功能。这意味着在...
增量导入更新索引包是Solr中的一项重要功能,它允许系统仅处理自上次完整索引以来发生改变的数据,从而大大提升了效率并降低了资源消耗。下面将详细阐述Solr增量更新的相关知识点。 1. **Solr的索引机制** Solr...
在本文中,我们将深入探讨如何使用Apache Solr 3.6的数据导入处理(DataImportHandler,简称DIH)组件从MySQL数据库中创建全文索引。Solr是一个强大的、开源的企业级搜索平台,而DIH是Solr的一个核心特性,允许用户...
在这个例子中,我们定义了一个名为`db`的数据源,使用了MySQL数据库,并指定了连接信息。然后定义了一个实体`book`,用于从`books`表中提取数据,并映射到Solr的字段。 至于提供的文件`MyBookShop_log.ldf`和`...
完成上述步骤后,Solr就会使用DIH组件从MySQL数据库中抽取数据,并创建一个全文索引,使你能高效地搜索和查询这些数据。这在大数据量的Web应用程序中非常有用,因为它提供了快速的搜索性能和丰富的查询能力。记得...
3. **数据同步**:通过Solr的DIH定期或实时从MySQL中抽取数据,更新到Solr索引,实现数据库和搜索索引的同步。 **IK分词器** 1. **IK Analyzer介绍**:IK分词器支持自定义词典,具备动态扩展性,可以处理中文的...
在你提供的压缩包中,包含了两个关键的jar文件,它们是实现Solr 7.5从MySQL数据库导入数据的核心组件。 1. **solr-dataimporthandler-7.5.0.jar**: 这个jar文件是Solr DataImportHandler的主要实现,它提供了一个...
本实践教程将指导你如何整合MySQL数据库与Solr 8.2.0,实现数据的高效检索。 一、安装与部署Solr 8.2.0 首先,你需要从官方源下载Solr 8.2.0的压缩包`solr-8.2.0.rar`,解压后得到包含`bin`、`server`等目录的完整...
本文详细介绍了如何安装配置Solr 6.6.0并与MySQL数据库集成的过程。通过图文并茂的方式,不仅让读者了解到Solr的安装配置流程,还深入探讨了Solr与MySQL之间的数据交互方式。Solr的强大功能使得它成为现代网站和应用...
3. **JDBC驱动**:如果你计划从数据库导入数据,可能需要相应的JDBC驱动,如MySQL、Oracle等。 4. **其他第三方库**:根据你的需求,可能还需要其他第三方库,如处理CSV、JSON数据的解析库。 在实际操作中,你可能...
将 Solr 集成与 MySQL,可以实现对 MySQL 数据库中的数据进行实时索引和快速检索,从而提升数据查询效率。下面我们将详细介绍如何进行 Solr 6.0 与 MySQL 的集成配置。 **1. 安装与配置 Solr** 首先,你需要下载并...
在这个文件中,我们需要配置Data Import Handler (DIH),这是一个用于从外部数据源(如MySQL数据库)导入数据的组件。 1. **配置requestHandler**:使用`org.apache.solr.handler.dataimport.DataImportHandler`...