- 浏览: 297799 次
- 性别:
- 来自: 东京
文章分类
最新评论
-
80后的童年2:
企业级分布式搜索平台Solr视频教程网盘地址:https:// ...
企业级搜索引擎Solr使用入门指南 -
springdata_spring:
apache lucene开源框架demo使用实例教程源代码下 ...
Lucene / Solr 开发经验 -
springdata-jpa:
java web开发分页demo源代码下载:http://ww ...
简易java分页标签 -
zjf_sdnu:
兄弟,script写错了
jqGrid初学备注 -
85600367:
你好,请教一个问题。当进行分布式查询时solr无法查询到Luc ...
Lucene / Solr 开发经验
将源代码修改为传递字符串,去掉files以及stdin模式。
package com; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.Reader; import java.io.StringReader; import java.io.StringWriter; import java.io.Writer; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.ProtocolException; import java.net.URL; /** * @author Clay Zhong - Email: zjclay@gmail.com * @date Sep 15, 2008 */ public class SimplePostTool { public static final String DEFAULT_POST_URL = "http://localhost:8080/solr/update"; public static final String POST_ENCODING = "UTF-8"; private static final String SOLR_OK_RESPONSE_EXCERPT = "<int name=\"status\">0</int>"; private static final boolean DEFAULT_COMMIT = true; protected URL solrUrl; public SimplePostTool(URL solrUrl) { this.solrUrl = solrUrl; } private class PostException extends RuntimeException { PostException(String reason, Throwable cause) { super(reason + " (POST URL=" + solrUrl + ")", cause); } } public static void main(String[] args) { StringBuffer request = new StringBuffer("<add><doc>"); request.append("<field name=\"id\">F8V7067-APL-KIT</field>"); request.append("<field name=\"name\">Belkin Mobile Power Cord for iPod w/ Dock</field>"); request.append("<field name=\"manu\">Belkin</field>"); request.append("<field name=\"cat\">electronics</field>"); request.append("<field name=\"cat\">connector</field>"); request.append("<field name=\"features\">car power adapter, white</field>"); request.append("<field name=\"weight\">4</field>"); request.append("<field name=\"price\">19.95</field>"); request.append("<field name=\"popularity\">1</field>"); request.append("<field name=\"inStock\">false</field>"); request.append("</doc></add>"); URL url = null; try { url = new URL(DEFAULT_POST_URL); } catch (MalformedURLException e) { fatal("System Property 'url' is not a valid URL: " + url); } final SimplePostTool simplePostTool = new SimplePostTool(url); try { if (request.length() > 0) { info("Posting args to " + url); final StringWriter writer = new StringWriter(); simplePostTool.postData(new StringReader(request.toString()), writer); warnIfNotExpectedResponse(writer.toString(), SOLR_OK_RESPONSE_EXCERPT); } if (DEFAULT_COMMIT) { info("Commiting Solr index changes.."); final StringWriter writer = new StringWriter(); simplePostTool.commit(writer); warnIfNotExpectedResponse(writer.toString(), SOLR_OK_RESPONSE_EXCERPT); } } catch (IOException ioe) { fatal("Unexpected IOException " + ioe); } } /** * Does a simple commit operation */ public void commit(Writer output) throws IOException { postData(new StringReader("<commit/>"), output); } /** * Reads data from the data reader and posts it to solr, writes to the response to output */ public void postData(Reader data, Writer output) { HttpURLConnection urlc = null; try { urlc = (HttpURLConnection) solrUrl.openConnection(); try { urlc.setRequestMethod("POST"); } catch (ProtocolException e) { throw new PostException("HttpURLConnection doesn't support POST?", e); } urlc.setDoOutput(true); urlc.setDoInput(true); urlc.setUseCaches(false); urlc.setAllowUserInteraction(false); urlc.setRequestProperty("Content-type", "text/xml; charset=" + POST_ENCODING); OutputStream out = urlc.getOutputStream(); try { Writer writer = new OutputStreamWriter(out, POST_ENCODING); pipe(data, writer); writer.close(); } catch (IOException e) { throw new PostException("IOException while posting data", e); } finally { if (out != null) out.close(); } InputStream in = urlc.getInputStream(); try { Reader reader = new InputStreamReader(in); pipe(reader, output); reader.close(); } catch (IOException e) { throw new PostException("IOException while reading response", e); } finally { if (in != null) in.close(); } } catch (IOException e) { fatal("Connection error (is Solr running at " + solrUrl + " ?): " + e); } finally { if (urlc != null) urlc.disconnect(); } } /** * Pipes everything from the reader to the writer via a buffer */ private static void pipe(Reader reader, Writer writer) throws IOException { char[] buf = new char[1024]; int read = 0; while ((read = reader.read(buf)) >= 0) { writer.write(buf, 0, read); } writer.flush(); } /** * Check what Solr replied to a POST, and complain if it's not what we expected. TODO: parse the * response and check it XMLwise, here we just check it as an unparsed String */ static void warnIfNotExpectedResponse(String actual, String expected) { if (actual.indexOf(expected) < 0) { warn("Unexpected response from Solr: '" + actual + "' does not contain '" + expected + "'"); } } static void warn(String msg) { System.err.println("SimplePostTool WARNING: " + msg); } static void info(String msg) { System.out.println("SimplePostTool: " + msg); } static void fatal(String msg) { System.err.println("SimplePostTool FATAL: " + msg); System.exit(1); } }
发表评论
-
Struts2 Jsonplugin 详解
2009-07-08 21:41 7100本文转自: http://www.blogjava.net/f ... -
一点struts json备注
2009-07-05 00:30 1535下载struts json插件:jsonplugin-0.33 ... -
Hibernate annotation简单配置
2009-06-29 00:04 1663<?xml version="1.0" ... -
Liferay下整合Spring和Hibernate开发Plugin初试
2009-05-26 00:41 4897简单的说,完全不知道Liferay下应该如何做开发。所以完全凭 ... -
Liferay plugin开发入门
2009-05-19 00:10 2726本篇部分引用以下文章: http://daoger.itey ... -
Hibernate通用DAO
2009-01-02 17:46 3626/** * @author Clay Zhong, zjcl ... -
Acegi获取用户信息
2008-12-04 23:38 2858import org.acegisecurity.Authen ... -
Acegi详解
2008-11-16 21:15 1767本文转自:http://www.yuanma.org/data ... -
velocity.properties source code
2008-11-04 22:37 3005# Licensed to the Apache Softwa ... -
DetachedCriteria,Hibernate模糊查询
2008-09-21 10:59 41991,假设存在Thesis对象: package org.cms ... -
lucene常用搜索排序摘录
2008-09-16 23:38 3145一,查询 一个关键字,对一个字段进行查询 Query ... -
Struts2,Spring2,Hibernate3整合
2008-09-15 11:44 33831. web.xml <?xml version=&qu ... -
企业级搜索引擎Solr使用入门指南
2008-09-10 22:43 16683本文转自 http://chuanliang2 ... -
Lucene / Solr 开发经验
2008-09-10 22:12 20034转自 Lucene/Solr开发经验[原] 作者 张驰有道 ... -
Lucene初学备注
2008-09-07 19:51 12641,检索文件目录,创建index import java.io ... -
JR各Ajax框架基础教程收集
2008-08-24 12:19 1216JQuery: http://www.javaresearch ... -
Spring 2.0 中配置 JPA
2008-04-20 16:57 3899翻译:SpringSide团队 转载请注明出处。 本文提供了 ... -
Hibernate延迟加载
2008-02-09 16:22 2738延迟初始化错误是运用Hibernate开发项目时最常见的错误。 ... -
Properties资源文件编码
2008-01-26 17:26 15171、展开Eclipse的Help菜单,将鼠标移到Softwar ... -
struts+hibernate分页
2007-12-17 20:53 1727新建表 sql 代码 DROP DATABAS ...
相关推荐
3. **修改Solr配置**:在`solrconfig.xml`中,添加IK Analyzer的相关配置,比如资源加载路径,以便Solr启动时能正确加载分词器: ```xml ${solr.install.dir}/dist/" regex=".*analyzer-.*\.jar" /> ``` 4. **...
标题中提到的"ikanalyzer-solr中文分词包兼容solr7.5"意味着这个分词器已经过优化,可以与Solr 7.5版本无缝集成,确保在该版本的Solr环境中正常运行。 首先,我们来了解一下ikanalyzer的核心组件: 1. `ik-...
### SOLR中文文档知识点概述 ...这些知识点对于初学者来说是非常宝贵的资源,可以帮助他们快速上手SOLR并应用于实际项目中。此外,对于想要深入了解SOLR内部机制的开发者而言,掌握Lucene原理也是十分必要的。
当我们谈论“SolrCore的添加和修改控制”时,我们主要关注如何在Solr中创建、配置、更新和管理SolrCore,以及如何实现对这些操作的安全控制。 1. **创建SolrCore** 要创建一个SolrCore,你需要准备一个配置目录,...
5. **重启Solr**:完成上述配置后,需要重启Solr服务器以使更改生效。 6. **测试验证**:创建一个索引,添加一些中文文档,然后进行查询,查看分词效果是否符合预期。 通过以上步骤,我们就能在Solr 5.4中成功配置...
5. **重启 Solr**:完成以上配置后,需要重启 Solr 服务以使更改生效。 6. **测试验证**:通过 Solr 的 Admin UI 或 API 进行测试,查看分词结果是否符合预期,可以通过查询分析器工具进行实时分词演示。 在 Solr ...
5. **启动Solr**:完成配置后,重启Solr服务器使更改生效。 6. **测试分词**:通过Solr的分析器接口或者日志输出,可以检查分词效果,确保ikanalyzer正常工作。 7. **使用教程**:如果遇到任何问题,可以参考...
4. **重启Solr**:保存配置并重启Solr服务,使更改生效。 5. **测试分词效果**:使用Solr的`analysis.jsp`页面或API来测试分词效果。 在Solr 5.5和6.0版本中,可能需要注意的兼容性和优化问题包括: - **版本兼容性...
要在 Solr 中使用 IK Analyzer,首先需要将其添加到 Solr 的类路径中,然后在 Solr 的 schema.xml 或 managed-schema 文件中配置字段类型(fieldType),指定使用 IK Analyzer。同时,可以设置自定义词典路径,以...
### Solr中Cache综述及优化策略 #### 一、概述 Apache Solr是一个高性能、可伸缩的企业级搜索平台,它基于Lucene构建,在实际应用中为了提高查询效率和性能,内置了一系列缓存机制(Cache)。这些缓存机制不仅能够...
### Solr中的MMSeg4J中文分词器安装与配置详解 #### 一、MMSeg4J简介 MMSeg4J是一款高效的Java实现的中文分词工具包,它基于统计和规则混合的方法来处理中文文本的分词问题。在搜索引擎如Solr中,通过集成MMSeg4J...
4. **重启Solr**:保存修改后的配置,重启Solr服务,使其生效。 5. **测试验证**:通过Solr的Admin界面或API,提交中文文本进行搜索,观察分词结果是否符合预期。 标签中的"ik-ana"是Ik Analyzer的简称,"solr 中文...
在Solr 5.x和6.x版本中,中文分词器扮演着至关重要的角色,它负责将中文文本拆分成有意义的词汇,便于索引和查询。下面将详细介绍Solr中的中文分词器及其相关知识。 一、Solr中文分词器概述 在处理中文文档时,由于...
在本压缩包中,包含Solr的源码,以及IK分词器和Zookeeper的相关内容。下面我们将详细探讨Solr集群的构建与使用,以及IK分词器和Zookeeper的角色。 首先,让我们来看看Solr集群的构建。一个Solr集群是由多个独立的...
5. **重启Solr**:完成上述配置后,需要重启 Solr 服务器以使更改生效。 6. **测试与优化**:在实际应用中,可以通过Solr的Admin界面或API进行分词测试,观察分词效果。根据需求,可以调整 ikanalyzer 的配置,如...
在 Solr 中,你可以通过修改配置文件来定制搜索行为,例如设置索引字段、分析器(包括中文分词器)以及查询行为。对于中文支持,Solr 提供了诸如 IK 分词器等插件,能够对中文文本进行有效的分词处理,从而提高搜索...
以上只是Solr 4.7企业开发中的部分核心知识点,实际应用中还需要结合具体业务需求进行定制和优化。提供的文档“SOLR中文教程.doc”和“Solr4.7中文学习手册.docx”将更深入地阐述这些概念和操作方法,为开发者提供...
描述中提到的"solr中文分词器 IKAnalyzer 支持solr版本5.x到7.x 亲测可用,我用的是7.2版本"进一步证实了IKAnalyzer在Solr 7.2版本中的实际应用,这为其他用户提供了信心,确保了在不同Solr版本下的稳定运行。...
3. **配置Solr的中文解析器**:在Solr中使用IK Analyzer,需要在solrconfig.xml和schema.xml这两个配置文件中进行设置。首先,需要在solrconfig.xml中指定查询分析器和索引分析器为IK Analyzer;然后,在schema.xml...