首页 > 代码库 > Solr 查询 Hello World

Solr 查询 Hello World

前一篇文章(http://blog.csdn.net/span76/article/details/42079223) 试验了安装 Solr,这次来联系query

环境准备

启动一个 node

cd example

java -Dbootstrap_confdir=./solr/collection1/conf -Dcollection.configName=myconf -DzkRun -DnumShards=1 -jar start.jar

提交一篇文档

cd exampledocs
java -Durl=http://localhost:8983/solr/collection1/update -jar post.jar monitor.xml


就可以到  http://10.15.4.173:8983/solr/#/collection1/query  提交查询,看到如此多选项有点晕,没关系,直接提交就行了,可看到查询结果是一篇文档.

增加一篇文档

mv monitor.xml  monitor_a.xml 

内容如下

<add><doc>
  <field name="id">S22B310B</field>
  <field name="name"></field>
  <field name="manu">Samsung, Inc.</field>
  <!-- Join -->
  <field name="manu_id_s">samsung</field>
  <field name="cat">electronics and computer1</field>
  <field name="features">21.5" TN LCD, 1920 x 180, .25mm dot pitch, 100000:1 contrast</field>
  <field name="includes">none</field>
  <field name="weight">401.6</field>
  <field name="price">779</field>
  <field name="popularity">6</field>
  <field name="inStock">true</field>
  <!-- Buffalo store -->
  <field name="store">23.17614,-20.57341</field>
</doc></add>

java -Durl=http://localhost:8983/solr/collection1/update -jar post.jar monitor_a.xml 

再查询可以看到两篇文档\

参数试验

q参数

把 "*:*" 改为 "manu_id_s:dell",  查询只得 dell的 monitor文档, 这是精确匹配用 ell, delln,都不行

多重条件可以用 OR, AND, NOT (必须大写) 来连接比如: popularity:7 OR manu_id_s:dell

可以用 *,? 模糊匹配 popularity:* AND manu_id_s:de?l ,可以用 ()并包含函数,很像关系型数据库了


fq参数 (filter query)

在fq栏目 “price:[ * TO 1000]", 得到price 小于1000的 (注意  TO 一定要大写) 

可以有多个fq


sort 参数

结果按升或降排序,比如: “price asc” 或 "price desc"

多个用逗号间隔,比如:popularity asc,price asc



fl 参数

需要返回的 field 比如

写price就只返回这一个字段,可以像sql一样用函数,比如  id,sum(price,popularity)


facet参数

facet.filed 写上 manu得到下面的结果

技术分享



两篇文档的 manu如下,可见逗号是分割符号(空格不是),结果是统计(相当于count) 的文档数
 "manu": "Dell, Inc.",
"manu": "Samsung, Inc.",

如果你改内容如下:

"manu": "Samsung, Inc, Inc.",  结果是不变的


提交新字段

我把monitor.xml中的 price改为 price2,提交失败

要修改 vi ./solr/collection1/conf/schema.xml

加上下面这行才行,以告诉搜索引擎如何处理下面的行

 <field name="price2"  type="float" indexed="true" stored="true"/>


ref:

http://martin3000.iteye.com/blog/1330106
http://wiki.apache.org/solr/CommonQueryParameters#fl
http://www.cnblogs.com/huangfox/p/4043262.html
https://cwiki.apache.org/confluence/display/solr/Common+Query+Parameters
https://wiki.apache.org/solr/SimpleFacetParameters
https://cwiki.apache.org/confluence/display/solr/Faceting



Solr 查询 Hello World