3、solr的基本操作

原创 2013年12月04日 23:19:19

import java.io.IOException;
import java.net.MalformedURLException;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
import org.apache.solr.common.SolrInputDocument;
import org.junit.Test;

/**
 * @date 2013年12月4日
 * @author huangjie
 */
@SuppressWarnings("deprecation")
public class SolrTest {
	//指定solr服务器的地址
	private final static String URL = "http://localhost:8080/solr";
	
	@Test
	public void test1(){
		//1、创建SolrServer对象,该对象有两个可以使用,都是线程安全的
//		CommonsHttpSolrServer:启动web服务器使用的,通过http请求的
//		EmbeddedSolrServer:内嵌式的,导入solr的jar包就可以使用了
		try {
			CommonsHttpSolrServer server = new CommonsHttpSolrServer(URL);
			//把查询出来的数据全部删除
//			server.deleteByQuery("*:*");
//			server.commit();
			
			SolrInputDocument doc = new SolrInputDocument();
			//id是必填的,并且是String类型的
			//<field name="id" type="string" indexed="true" stored="true" required="true" />
			//id是唯一的主键,当多次添加的时候,最后添加的相同id会覆盖前面的域
			doc.addField("id", "1");
			doc.addField("msg_title", "这是我的第一个solrj程序");
			doc.addField("msg_content", "solr程序的运行");
			server.add(doc);
			server.commit();
		} catch (MalformedURLException e) {
			e.printStackTrace();
		} catch (SolrServerException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
1、

上述的程序会报错:


2、Schema.xml中有一大组field,所有要加到solr域里面的field都要往该配置文件里面加,而上面的content字段并没有在schema.xml里面


因为默认的title的type是text_general

<field name="title"type="text_general" indexed="true" stored="true"multiValued="true"/>

经过查看,text_general类型分词是标准分词


查看索引如下:


3、所以这里有两种做法

第一种:把title的type给改成中文搜索的type,这里是textComplex

第二种:增加一个field,比如msg_title,该field支持用中文分词的

现在用第二种方法,在schemal.xml添加如下:


在java代码中添加如下:


使用luke查看索引如下:


其实添加的话就可以把原来的id重复的给更新掉了,因为id是唯一的


4、如果我们几个字段一起搜索的话可以


但是这种比较麻烦,可以进行配置多值域:


然后把其他域的索引加入到该域中:


修改之后需要重启

 

如果你直接搜索单词的话,则默认域是如下配置:






(Slor)java对solr的基本操作

package cn.solr; import java.io.IOException; import org.apache.solr.client.solrj.SolrQuery; import...

solr5的基本操作

摘要 solr5的界面的基本操作 solr5使用solrj进行java操作 Solr5操作界面操作 Document操作索引   Query查询索引   Java操作 ...

solr基本操作代码示例

import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map...

指尖上的电商---(7)Solr索引基本操作

我们来看下通过界面来操作SOLR,包括SOLR索引的添加,查询等基本操作.

JAVA的solr操作实现(基本操作)

JAVA操作solr的实现其实很简单,但是很多细节要注意,在实际的开发中,很多人喜欢自己封装这些基础的方法以一个全新的“面貌”出现,其实都是一回事,操作熟了自然就会想到将一些实现功能用到的方法重新封装...

JAVA的solr操作实现(基本操作)

Java操作solr的实现其实很简单,但是很多细节要注意,在实际的开发中,很多人喜欢自己封装这些基础的方法以一个全新的“面貌”出现,其实都是一回事,操作熟了自然就会想到将一些实现功能用到的方法重新封装...

JAVA的solr操作实现(基本操作)

JAVA操作solr的实现其实很简单,但是很多细节要注意,在实际的开发中,很多人喜欢自己封装这些基础的方法以一个全新的“面貌”出现,其实都是一回事,操作熟了自然就会想到将一些实现功能用到的方法重新封装...
  • Truong
  • Truong
  • 2015年08月28日 18:03
  • 338

JAVA的solr操作实现(基本操作)

JAVA操作solr的实现其实很简单,但是很多细节要注意,在实际的开发中,很多人喜欢自己封装这些基础的方法以一个全新的“面貌”出现,其实都是一回事,操作熟了自然就会想到将一些实现功能用到的方法重新封装...

ccna-3 cisco设备基本操作

  • 2013年08月16日 08:18
  • 59.57MB
  • 下载

第四章 DreamweaverCs3的基本操作

  • 2013年04月14日 21:49
  • 260KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:3、solr的基本操作
举报原因:
原因补充:

(最多只允许输入30个字)