违法℃玩家 发表于 2016-12-14 08:37:11

Solr tutorial

  http://lucene.apache.org/solr/tutorial.html
  solr一些基础的用法
  启动,使用内嵌的jetty,也可使用容器
  java -jar start.jar
  启动后访问管理页面http://localhost:8983/solr/admin
Indexing Data
  使用工具索引文档,  切换到exampledocs目录
  java -jar post.jar *.xml
  post.jar程序将xml文件提交到solr服务建立索引
  看看这些xml文件格式,都是<doc></doc>格式化的描述信息,包括字段名和值,字段名在配置文件schema.xml中有描述
  执行完成后,在浏览器中查询
  查询关键字video
  http://localhost:8983/solr/select/?q=video
  在字段name中查询video
  http://localhost:8983/solr/select/?q=name:video
  http://localhost:8983/solr/select/?q=%2Bvideo+%2Bprice%3A[*+TO+400]
  数据导入的方式有几种:
  使用Data Import Handler (DIH)从数据库中导入,例子看db
  CSV文件导入
  JSON文档
  使用Solr Cell导入二进制文档(如word, pdf)
  使用SolrJ编程实现
  
  
Updating Data
  根据uniqueKey(配置文件中有定义),如果存在则替换之前的数据
  重复执行post.jar程序导入xml文件,通过http://localhost:8983/solr/admin/stats.jsp查看numDocs maxDoc统计值
  more
Deleting Data
  根据id删除索引数据
  java -Ddata=args -Dcommit=no -jar post.jar "<delete><id>SP2514N</id></delete>"
  参数-Dcommit=no为非自动提交,为提高效率,多次执行操作,最后一次性提交
  执行java -jar post.jar会产生提交
  根据查询条件删除索引数据
  java -Ddata=args -jar post.jar "<delete><query>name:DDR</query></delete>"
  
Querying Data
  查询结果默认用xml返回,看其格式

[*]q=video&fl=name,id查询video,返回字段name,id
[*]q=video&fl=name,id,scorescore是相关性分数(relevancy score)
[*]q=video&fl=*,score返回所有字段和score
[*]q=video&sort=price desc&fl=name,id,priceprice降序
[*]q=video&wt=json返回json格式,默认是xml格式
[*]q=video&sort=inStock asc, price descinStock升序price降序
[*]q=video&sort=score desc使用score降序
[*]q=video&sort=inStock asc, score desc
[*]q=video&sort=div(popularity,add(price,1)) desc函数结果降序
  more
Highlighting

[*]q=video card&fl=name,id&hl=true&hl.fl=name,features查询结果中的关键字高亮,看返回的xml中增加了高亮节点
  更多
Faceted Search
  统计查询结果某些字段出现的次数

[*]q=*:*&facet=true&facet.field=cat
  统计查询结果中字段cat出现的次数

[*]q=*:*&facet=true&facet.field=cat&facet.field=inStock
  统计查询结果中字段cat和字段inStock出现的次数

[*]q=ipod&facet=true&facet.query=price:&facet.query=price:
  统计查询结果中字段price在和[>100]两个范围出现的次数

[*]q=*:*&facet=true&facet.date=manufacturedate_dt&facet.date.start=2004-01-01T00:00:00Z&facet.date.end=2010-01-01T00:00:00Z&facet.date.gap=+1YEAR
  统计查询结果中字段“生产日期”,一个时间段内每1年中出现的次数

[*]more
  
  
Search UI
  一个查询页面,看看源码?
  http://localhost:8983/solr/browse
Text Analysis
  分析和具体的语言有关(中文和英语就很不一样),
  more
Analysis Debugging
  more
Conclusion
  文档格式?(字段,值)
  
More
  distributed search
  function queries
  numeric field statistics
  search results clustering
  see Solr Wiki
页: [1]
查看完整版本: Solr tutorial