前一篇文章(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