欢迎投稿

今日深度:

Solr,

Solr,


1.solr是Lucene面向企业搜索应用的扩展


2.Solr对外提供标准的http接口来实现对数据的索引的增加、删除、修改、查询


3.solr的基本配置都是一样,主要是对solr_home的配置,这里存放的都是每一个库特有的值


4.上传的xml文件中name需要对应schema.xml中的<field name="">,


5.在tomcat服务器中可以设置编码类型为UTF-8


6.schema.xml名词解释:

name:标识。
type:fieldType定义的类型,可以自定义中文分次。
indexed=true|false:是否被用来建立索引(关系到搜索和排序)
stored=true|false:是否储存
compressed=true|false,是否使用gzip压缩(只有TextField和StrField可以压缩)
compressThreshold=压缩阀值
multiValued=true|false 是否包含多个值,即一个名字可以被多个document所用。
omitNorms=true|false这是个高级选项。设置为true,省略与这一field相关的规范(这将禁用长度规范化和索引时间权重( index-time boosting for the field),并节省一些内 存)。仅仅用在全文本field。
termVectors=false|true 如果设置为true,则包含了所有的term vector 信息。通常用的属性有:
termPositions=”true”:存储 term vector中的地址信息,会消耗存储开销。
termOffsets:存储 term vector 的偏移量,会消耗存储开销。
omitTermFreqAndPositions=true|false 如果设置,省略掉freq和term vector中的地址信息
omitPositions=true|false如果设置,省略掉term vector中的地址信息
default:如果没有属性需要修改,就可以用这个标识下。

7.页面查询字段解释
q:查询输入,必须。可以使用运算符,一般使用*:*,:左右都需要有
fq:过滤查询。可以使用运算符
sort:排序的字段,格式为field score,多个字段之间用逗号隔开,比如sum(x_f, y_f) desc, price asc,默认是score desc
start:从哪一行开始
rows:获取多少行
fl:查询要输出的字段,字段之间用逗号隔开,比如title,price,seller,星号代表所有,默认就是星号。
df:定义查询时默认的查询field。
wt:返回的数据类型,可以是JSON、XML、python、ruby、php、csv等格式。
indent:true/false,返回的XML格式是否需要缩进(格式化展示),默认为false

debugQuery:调试查询,会输出查询过程的一些参数。


8.高亮是通过solrconfig.xml中配置名为highlight的searchComponent即可,默认的实现是solr.HighlightComponent。

7.
 solrServer = new HttpSolrServer(ConfigUtil.getValue("solr.url"));
 solrServer.setConnectionTimeout(5000);
 SolrQuery query = new SolrQuery();
 
query.setQuery("title: 开发笔记^2 OR content:开发笔记");
QueryResponse rsp = null;
  try {
          rsp = solrServer.query(query);
        } catch (SolrServerException e) {
            log.error("Boost查询时遇到错误:", e);
        }
        SolrDocumentList docs = rsp.getResults();


Iterator<SolrDocument> iter = docs.iterator();
        while (iter.hasNext()) {
            SolrDocument doc = iter.next();
            String idStr = doc.getFieldValue("id").toString();
            int id = Integer.parseInt(idStr);
            String title = doc.getFieldValue("title").toString();
            String content = doc.getFieldValue("content").toString();
            System.out.println("id:"+id+" title:"+title+" content:"+content);

        }


8.
    data/chars.dic 是单字与语料中的频率,一般不用改动,1.5版本中已经加到mmseg4j的jar里了,我们不需要关心它,当然你在词库目录放这个文件可能覆盖它。
    data/units.dic 是单字的单位,默认读jar包里的,你也可以自定义覆盖它,这功能是试行,如果不喜欢它,可以空的units.dic文件覆盖它。
    data/words.dic 是词库文件,一行一词,当然你也可以使用自己的,1.5版本使用 sogou 词库,1.0的版本是用 rmmseg 带的词库。
    data/wordsxxx.dic 1.6版支持多个词库文件,data 目录(或你定义的目录)下读到"words"前缀且".dic"为后缀的文件。如:data/words-my.dic。

9.数据导入
导入数据到Solr的方式也是多种多样的:
    可以使用DIH(DataImportHandler)从数据库导入数据
    支持CSV文件导入,因此Excel数据也能轻松导入
    支持JSON格式文档
    二进制文档比如:Word、PDF

    还能以编程的方式来自定义导入



www.htsjk.Com true http://www.htsjk.com/solr/27525.html NewsArticle Solr, 1.solr是Lucene面向企业搜索应用的扩展 2.Solr对外提供标准的http接口来实现对数据的索引的增加、删除、修改、查询 3.solr的基本配置都是一样,主要是对solr_home的配置,这里存放的...
相关文章
    暂无相关文章
评论暂时关闭