- 浏览: 313733 次
- 性别:
- 来自: 重庆
文章分类
- 全部博客 (286)
- 设计模式 (14)
- spring (5)
- 开发工具 (12)
- java (19)
- apache.commons工具 (7)
- ibaits (5)
- extjs4.0 (4)
- 数据库 (2)
- spring工具类 (2)
- jquery1.8 (32)
- 杂记 (1)
- linux (2)
- Quart (1)
- springMVC (2)
- webservice (1)
- oracle (5)
- dwr (6)
- jbmp3 (27)
- lucene3.5 (27)
- javascript (18)
- hibernate3.3.2 (27)
- spring事务管理 (10)
- nio (2)
- strust2 (3)
- jvm (7)
- jquery-easyui-1.2.6 (22)
- 多线程 (14)
- maven (3)
- 常用正则表达式 (4)
最新评论
-
HF_SKY000:
请问:
一、能否提供一下密钥库文件的生成方法?
二、密钥库的密 ...
Java sslSocket 聊天实例
public class Message {
private String id;
private String title;
private String[] content;
public Message() {
super();
}
public Message(String id, String title, String[] content) {
super();
this.id = id;
this.title = title;
this.content = content;
}
public String getId() {
return id;
}
@Field
public void setId(String id) {
this.id = id;
}
public String getTitle() {
return title;
}
//使用solr的注解
@Field("msg_title")
public void setTitle(String title) {
this.title = title;
}
public String[] getContent() {
return content;
}
@Field("msg_content")
public void setContent(String[] content) {
this.content = content;
}
}
public class SolrTest {
private final static String URL = "http://localhost:8080/solr";
private CommonsHttpSolrServer server = null;
@Before
public void init() {
try {
server = new CommonsHttpSolrServer(URL);
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
@Test
public void test01() {
try {
SolrInputDocument doc = new SolrInputDocument();
//id是唯一的主键,当多次添加的时候,最后添加的相同id的域会覆盖前面的域
doc.addField("id", "1");
//具体的Field需要在schema.xml文件中通过field标签定义,并且定义好分词器
doc.addField("msg_title", "这是我的第一个solrj的程序");
doc.addField("msg_content", "我的solrj的程序究竟能不能跑得起来呢?");
server.add(doc);
server.commit();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (SolrServerException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
public void test02() {
try {
List<SolrInputDocument> docs = new ArrayList<SolrInputDocument>();
SolrInputDocument doc = new SolrInputDocument();
doc.addField("id", "2");
doc.addField("msg_title", "很好!solr可以工作了");
doc.addField("msg_content", "slor总算可以正式工作了");
docs.add(doc);
doc = new SolrInputDocument();
doc.addField("id", "3");
doc.addField("msg_title", "测试一下solr的添加");
doc.addField("msg_content", "看看能不能添加一个列表信息");
docs.add(doc);
server.add(docs);
server.commit();
} catch (SolrServerException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
public void test03() {
try {
List<Message> msgs = new ArrayList<Message>();
msgs.add(new Message("4", "基于java bean的添加", new String[] { "通过java bean完成添加",
"java bean的添加附件" }));
//添加的域如果是个数组,需要将schema.xml中
field的mutilValue设置成true
msgs.add(new Message("5", "基于java bean的列表数据的添加", new String[] { "测试如何通过一个对象完成添加",
"通过对象完成添加的附件" }));
server.addBeans(msgs);
server.commit();
} catch (SolrServerException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
public void test04() {
try {
//定义查询字符串
SolrQuery query = new SolrQuery("*");
//分页
query.setStart(0);
query.setRows(3);
QueryResponse resp = server.query(query);
//查询出来的结果都保存在SolrDocumentList中
SolrDocumentList sdl = resp.getResults();
System.out.println(sdl.getNumFound());
for (SolrDocument sd : sdl) {
// System.out.println(sd);
System.out.println(sd.getFieldValue("msg_title") + ","
+ sd.getFieldValue("msg_content"));
}
} catch (SolrServerException e) {
e.printStackTrace();
}
}
@Test
public void test05() {
try {
SolrQuery query = new SolrQuery("*");
query.setStart(0);
query.setRows(3);
QueryResponse resp = server.query(query);
//可以直接查询相应的bean对象,但是不是很常用
List<Message> list = resp.getBeans(Message.class);
System.out.println(list.size());
for (Message msg : list) {
System.out.println(msg.getTitle());
}
} catch (SolrServerException e) {
e.printStackTrace();
}
}
@Test
public void test06() {
try {
SolrQuery query = new SolrQuery("测试");
query.setHighlight(true).setHighlightSimplePre("<span class='highligter'>")
.setHighlightSimplePost("</span>").setStart(0).setRows(5);
//设置哪些字段高亮
query.setParam("hl.fl", "msg_title,msg_content");
QueryResponse resp = server.query(query);
//查询出来的结果都保存在SolrDocumentList中
SolrDocumentList sdl = resp.getResults();
System.out.println(sdl.getNumFound());
for (SolrDocument sd : sdl) {
String id = (String) sd.getFieldValue("id");
//取出高亮字段
System.out.println(resp.getHighlighting().get(id).get("msg_content"));
}
} catch (SolrServerException e) {
e.printStackTrace();
}
}
}
发表评论
-
二十七、Luence在项目中运用
2012-12-26 15:03 1091public class LuceneContext { ... -
二十五、solr与tomcat的整合
2012-12-25 13:52 10481、solr是全文搜索服务器,专门用户管理索引的。 2 ... -
二十四、通过NRTManager和SearchManager实现近实时搜索
2012-12-21 11:35 1347是否进行实时搜索 实时搜索(近实时搜索) ... -
二十三、高亮显示
2012-12-20 09:24 1006public void lighter01() { ... -
二十二、Tika
2012-12-20 09:24 956Tika是2008年才产生的一个apache的项目,主要用于打 ... -
二十一、Luke
2012-12-20 09:24 807luke是一个查询索引的工具,使用时必须注意:版本要与luce ... -
二十、自定义过滤器
2012-12-20 09:23 865有的应用有些要求,对于某类型的内容即使满足条件了,但是也不 ... -
十七、搜索过滤
2012-12-20 09:23 628public void searcherByFilter(St ... -
十九、自定义QueryParser
2012-12-19 16:28 1217原因: 1、对于某些Quer ... -
十八、自定义评分
2012-12-19 16:18 789public class MyCustomScoreProvi ... -
十六、搜索排序
2012-12-19 12:14 1026public void searcherBySort(Stri ... -
十五、实现简单同义词分词器
2012-12-19 11:41 1252public interface SamewordContex ... -
十四、中文分词器
2012-11-28 13:49 860中文分词器 : Paoding:庖丁解牛分词器。 ... -
十三、自定义Stop分词器
2012-11-28 13:42 760import java.io.Reader; impor ... -
十二、Attribute
2012-11-28 13:20 822Attribute : ... -
十一、分词器的核心类
2012-11-28 13:12 900Analyzer : SimpleAnalyz ... -
十、分页搜索
2012-11-27 17:30 873分页查询有两种实现方式: 1、再查询 ... -
九、Queryparser
2012-11-27 17:24 993Mike 默认域包含mike Mi ... -
八、其他搜索Query
2012-11-27 10:30 653TermRangeQuery : 字母范围搜索 ... -
七、搜索的简单实现(TermQuery)
2012-11-26 17:12 990TermQuery只能精确匹配字符串(包括分词后的字符串,不 ...
相关推荐
#### 二、Apache Solr 介绍 - **定义**:Apache Solr 是一个开源的搜索平台,提供了高性能的全文检索功能。 - **获取方式**:用户可以从 Solr 官方网站 http://lucene.apache.org/solr/ 下载 Apache Solr。 #### 三...
4. **安装 Solr**:提供了详细的安装指南,包括从源代码编译安装到使用二进制包安装等多种方式。 #### 七、部署和运维(Deployment and Operations) 1. **Solr 控制脚本参考**:详细介绍了用于管理和控制 Solr ...
#### 二、Solr核(Core)的概念与创建 **核(Core)** 是Solr的一个基本单元,每个核都可以拥有自己的配置文件和索引数据。创建核的过程如下: 1. **创建核文件夹**:在Solr的工作目录下手动创建一个名为`test`的...
- 通过本指南的学习,读者将掌握 Solr 的基本概念和使用方法,为后续深入学习打下坚实的基础。 - Solr 不仅是一个强大的全文搜索引擎,而且具有高度的灵活性和扩展性,适合各种规模的企业应用。 - 对于初学者来说,...
#### 二、Solr 的主要特点 - **高性能**:Solr 支持高并发查询,能够处理大量的数据。 - **易用性**:提供了丰富的 API 和用户界面,方便开发者进行集成和管理。 - **灵活性**:支持多种数据格式和索引方式,可以...
#### 六、索引与基本数据操作 1. **索引过程** - **文档索引**:将文档添加到索引中。 - **提交索引更改**:使用“commit”命令将更改保存到索引中。 - **优化索引**:使用“optimize”命令合并段,减少索引文件...
**步骤九:使用Solr或Elasticsearch建立索引** Nutch可以与Solr或Elasticsearch集成,用于存储和搜索生成的索引。安装Solr或Elasticsearch,并配置Nutch的相关配置,如`solrserver.url`或`elasticsearch.nodes`。 *...
#### 十三、Solr搜索结果优化 - **优化策略**: 通过设置boost值调整索引字段的重要性,从而影响搜索结果的排序,使更相关的结果排在前面。 #### 十四、ActiveMQ在项目中的应用 - **应用场景**: 在商品添加或修改...
#### 二、Lucene的应用架构与基本API - **通用搜索应用架构**: - **索引构建**:首先需要将数据转化为Lucene可以处理的格式,并建立索引。 - **查询与检索**:用户通过输入关键词等方式进行查询,系统返回匹配的...
│ 淘淘商城第十二天笔记.docx │ ├─补充1:拔高课程(Redis3.0持久化、集群、MySQL5.6优化、Tomcat7优化) │ │ 打开必读.txt │ │ │ ├─课前资料 │ │ ├─MySQL5.6优化 │ │ │ MySql5.6性能优化.docx ...
4. **HBase集成其他索引系统**:例如使用Apache Phoenix提供的SQL层或Apache Solr作为索引引擎。 #### 五、RowKey设计原则 有效的RowKey设计对于HBase的性能至关重要。良好的RowKey设计可以减少热点问题,提高查询...
- **实现方法**:通过Play Framework 的HTTP客户端工具进行API调用,并使用错误处理机制确保在API暂时不可用时仍能提供基本服务。 #### 五、添加自定义监控点 - **知识点概述**:Play Framework 允许开发者在应用...
3. **编写简单的索引和查询代码**:通过简单的示例代码来熟悉 Lucene 的基本使用方法。 #### 二、索引(Indexing) **索引** 是 Lucene 的核心功能之一。它是指将文档转换为可搜索的形式并存储的过程。索引过程中,...
除了基本的单词查询,Lucene还支持更复杂的查询类型,如PrefixQuery(前缀查询)、WildcardQuery(通配符查询)、FuzzyQuery(模糊查询)、RegexQuery(正则表达式查询)等。这些查询类型极大地扩展了搜索能力,允许...
#### 二十、附录 C:标记选择器语法 以上概述了 Thymeleaf 3.0.5 中文参考手册的主要内容,从基础的概念介绍到高级功能的应用,涵盖了 Thymeleaf 的各个方面。这对于想要深入了解 Thymeleaf 并将其应用于实际项目中...