[solr] solr 中的indexed 和stored有点不明白

tan8888 2009-12-21
  刚学solr。我看有的人这么写indexed = true ,stroed=false,还有人写indexed=false,stored=true,我有点不明白,可以索引,为什么不存储呢?那有一篇文章,有10万字,设置为indexed = true ,stroed=false,那占不占空间啊?
说到底,还是不明白index和store的意思
luckaway 2009-12-22
索引储存的是分词之后的结果,一项、一项存储的,不是整体存储的!

了解下倒排索引就知道了
tan8888 2009-12-22
luckaway 写道
索引储存的是分词之后的结果,一项、一项存储的,不是整体存储的!

了解下倒排索引就知道了

你的意思是,indexed是分词之后索引的,而stored=true是整体储存的?那为什么不全部设置为indexed=true呢,这样也可以查询?
imjl 2009-12-22
tan8888 写道
luckaway 写道
索引储存的是分词之后的结果,一项、一项存储的,不是整体存储的!

了解下倒排索引就知道了

你的意思是,indexed是分词之后索引的,而stored=是整体储存的?那为什么不全部设置为indexed=true呢,这样也可以查询?


呵呵,,并不是所有field都需要查询的,有的只是顺带。

你可以这样理解:
Indexed=true   就是可以查询
Stored=true     就是内容存储

设置关键是只设置需要查询的Indexed=true,需要和查询结果一起返回的字段内容设置Stored=true,其他就是false,节约索引大小和资源。



seraphim871211 2009-12-22
都是针对field的:
       indexed表示需不需要建立索引,以便之后对这个field进行查询;

       stored表示需不需要随索引同时存储这个field本身的内容,以便查询时直接从结果中获取该内容,一般大数据(比如文件内容本身)不会和索引一起保存,节省资源,防止索引过大。

索引本身和被索引的内容要分清,不理解的话,倒排索引:http://zh.wikipedia.org/wiki/%E5%80%92%E6%8E%92%E7%B4%A2%E5%BC%95
      
tan8888 2009-12-22
谢谢你们回答啊,初学solr,很多不明白。
再问一下:
Collection<SolrInputDocument> docs = new HashSet<SolrInputDocument>();
		SolrServer server = new CommonsHttpSolrServer("http://localhost:8080/solr/");
		for(int i = 0;i<10;i++){
			SolrInputDocument input = new SolrInputDocument();
	input.addField("id", "3654");
			input.addField("name", "xx");
			docs.add(input);
			
		}
		server.add(docs);
		server.commit();


把这段代码放在main方法,总是执行不成功,总是
Exception in thread "main" org.apache.solr.common.SolrException: /solr/update

/solr/update

request: http://localhost:8080/solr/update?wt=javabin&version=1
	at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:424)
	at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:243)
	at org.apache.solr.client.solrj.request.AbstractUpdateRequest.process(AbstractUpdateRequest.java:105)
	at org.apache.solr.client.solrj.SolrServer.add(SolrServer.java:49)
	at com.tan.SolrServerGetter.main(SolrServerGetter.java:38)




为什么呢,那段代码可以在main方法执行吧,不需要部署到tomcat吧,各位有没有写好的简单的solr示例,不是apache上面的,带中文分词的。我一次也没有成功部署过自己的示例,倒是apache上面的示例可以部署成功。
tan8888 2009-12-22
谢谢你们回答啊,初学solr,很多不明白。
再问一下:
Collection<SolrInputDocument> docs = new HashSet<SolrInputDocument>();
		SolrServer server = new CommonsHttpSolrServer("http://localhost:8080/solr/");
		for(int i = 0;i<10;i++){
			SolrInputDocument input = new SolrInputDocument();
	input.addField("id", "3654");
			input.addField("name", "xx");
			docs.add(input);
			
		}
		server.add(docs);
		server.commit();


把这段代码放在main方法,总是执行不成功,总是
Exception in thread "main" org.apache.solr.common.SolrException: /solr/update

/solr/update

request: http://localhost:8080/solr/update?wt=javabin&version=1
	at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:424)
	at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:243)
	at org.apache.solr.client.solrj.request.AbstractUpdateRequest.process(AbstractUpdateRequest.java:105)
	at org.apache.solr.client.solrj.SolrServer.add(SolrServer.java:49)
	at com.tan.SolrServerGetter.main(SolrServerGetter.java:38)




为什么呢,那段代码可以在main方法执行吧,不需要部署到tomcat吧,各位有没有写好的简单的solr示例,不是apache上面的,带中文分词的。我一次也没有成功部署过自己的示例,倒是apache上面的示例可以部署成功。有的话可以发到我的邮箱347890594@qq.com   谢谢啊
seraphim871211 2009-12-22
这个。。。你有没看过Solr官网的说明啊,Solr必须部署在Servlet Container中运行。demo中能够运行是内嵌了jetty吧。

还是搞清楚这个是什么东西,为什么要用再来说吧。不回复了,Java程序员太懒了
tan8888 2009-12-23
引用
这个。。。你有没看过Solr官网的说明啊,Solr必须部署在Servlet Container中运行。demo中能够运行是内嵌了jetty吧。

还是搞清楚这个是什么东西,为什么要用再来说吧。不回复了,Java程序员太懒了

我当然知道solr是要部署在服务器中了,而且我也知道demo是用jetty,你可能没看明白我的问题,这段代码是客户端,只是向服务器发送请求,是不需要部署在服务器,这段代码没有执行成功,不知道哪出现问题,才会有此一问.
  可能你们很厉害,我是初学者,相信也有很多刚接触solr的人不太明白一些原理,都是自学,没有人教才会问一些很低级的问题,像你们这样高手能够理解才行。
imjl 2009-12-23
solr运行有多种方式,,tan8888的是基于solrj的一种,jetty,tomcat是另一种。

至于“可能你们很厉害,我是初学者,相信也有很多刚接触solr的人不太明白一些原理,都是自学,没有人教才会问一些很低级的问题,像你们这样高手能够理解才行。”,,,是一句屁话。solr不是大学学科,国内也没啥相关机构教授,大家都是自学的。没有人有义务教授新手


至于你代码我觉得solr的wiki上面有比较多得信息可以参考,至于部署tomcat或者jetty的支持中文的solr,baidu和google上面很多。




Global site tag (gtag.js) - Google Analytics