[关闭]
@xlx9765 2017-06-27T13:04:13.000000Z 字数 2884 阅读 218

Query索引实验报告


本文的实验环境是solr搜索服务器(阿里云服务器)+本地solr-6.3.0分析环境.

1、techproducts示例相关查询

首先通过命令行进入本地solr,然后启动示例techproducts
此处输入图片的描述

启动后如下显示
此处输入图片的描述
选择的core是techproducts。
然后可以进行query查询,得到查询的相应结果。

1

搜索流行度为5及以上的产品,结果按照inStock降序,在按照price升序,每页显示5个结果分页,结果内容包括name,price,features,popularity,结果为json格式。

流行度5及以上 popularity:[5 TO *]
升降序部分 inStock desc,price asc
分页部分 5
结果条目即fl部分 name,price,features,popularity
输出格式 json

url为:

http://localhost:8983/solr/techproducts/select?fl=name,price,features,popularity&fq=popularity:[5 TO *]&indent=on&q=iPod&rows=5&sort=inStock desc,price asc&wt=json

查询结果为
此处输入图片的描述

2

搜索价格在400以下且有库存的商品,popularity降序排列,搜索结果为name,price,features,score,json格式

价格400以下 price:[0 TO 400]
有库存 inStock:[0 TO *]
欢迎程度降序 popularity desc

url为

http://localhost:8983/solr/techproducts/select?fl=name,price,features,score&fq=inStock:[0 TO *]&fq=price:[0 TO 400]&indent=on&q=iPod&sort=popularity desc&wt=json

查询结果为
此处输入图片的描述

3

搜索制造商为Belkin的iPod部件,价格升序,返回结果为name,price,features,xml格式

manu=Belkin
price asc

url为

http://localhost:8983/solr/techproducts/select?fl=name,price,features&fq=manu:Belkin&indent=on&q=iPod&sort=price asc&wt=xml

查询结果为
此处输入图片的描述

4

特征features字段中搜索“plays”,高亮,返回xml格式。

url为

http://localhost:8983/solr/techproducts/select?fq=features=plays&hl=on&indent=on&q=iPod&wt=xml

查询结果为
此处输入图片的描述

5

查询electronics有多少有货,多少没货。

url为

http://localhost:8983/solr/techproducts/select?facet.field=inStock&facet.query=inStock=true,inStock=false&facet=on&fl=name,inStock&indent=on&q=electronics&wt=json

查询结果为:
如图显示每个部件名称及是否有货。
此处输入图片的描述

如图给出库存统计信息:
inStock true 10
inStock false 4
此处输入图片的描述

6

搜索价格为0-300,300-600,600以上的商品,按照cat进行分类,搜索结果显示name,price,manu,返回json数据。

通过Luke可视化界面我们可以看到cat记录16条,如下
此处输入图片的描述

共有两个类型electronics(12条)和currency(4条),如下:
此处输入图片的描述
此处输入图片的描述

所以我构造了两个查询,第一个指定cat为currency,url为

http://localhost:8983/solr/techproducts/select?facet.field=price&facet.query=price:[0 TO 300],price:[300 TO 600],price:[600 TO *]&facet=on&fl=name,price,manu&indent=on&q=currency&wt=json

返回结果为
此处输入图片的描述

第二个指定cat为electronics,url为

http://localhost:8983/solr/techproducts/select?facet.field=price&facet.query=price:[0 TO 300],price:[300 TO 600],price:[600 TO *]&facet=on&fl=name,price,manu&indent=on&q=electronics&wt=json

返回结果为
此处输入图片的描述
此处输入图片的描述

如图我们可以看到每个价格出现的次数。

2、movie与films相关查询

创建movie内核
此处输入图片的描述

熟悉Documents字段内容。

创建films内核
此处输入图片的描述

通过schema API 方式新增字段name和initial_release_date,如下方式添加:
此处输入图片的描述

添加成功后如下显示
此处输入图片的描述
此处输入图片的描述

导入json格式的films数据
此处输入图片的描述

导入后生成如下索引
此处输入图片的描述

将索引导入luke
此处输入图片的描述
导入成功后显示如下
此处输入图片的描述
可看出每个字段的词频,百分比,编码格式。还可以看出索引中有7个fields,1100个documents,9709个terms。

查找所有Super hero的电影
此处输入图片的描述

url为

http://localhost:8983/solr/films/select?indent=on&q=Super hero&wt=json

统计各流派电影的数量
如图,Field选择genre,
此处输入图片的描述
然后会显示各流派电影数量
此处输入图片的描述

也可以使用分类查询
此处输入图片的描述

url为

http://localhost:8983/solr/#/films/query?q=%7B!term%20f%3Dgenre%7DAdventure%20Film

具体结果如下:
此处输入图片的描述
此处输入图片的描述
此处输入图片的描述
此处输入图片的描述
此处输入图片的描述

另外也可以单个流派进行查询,查看返回结果,如下
此处输入图片的描述
如图Drama 570条,与之前结果一致。
还可以通过Luke进行查询,如下
此处输入图片的描述

自建查询,查询Steven Soderbergh导演的电影,
url为

http://localhost:8983/solr/films/select?fl=name&indent=on&q=Steven Soderbergh&wt=json

返回结果为:
此处输入图片的描述

显示films简单搜索界面,如下:
此处输入图片的描述

3、新建内核实现中文索引

新建内核restaurant,如下:
此处输入图片的描述

配置mmseg4j中文分词包,首先将如下两个jar包导入文件夹,jar包和文件路径如下显示:
此处输入图片的描述
此处输入图片的描述
在solr-6.3.0/server/solr下新建文件my_dic,并在managed-schema中添加如下代码:此处输入图片的描述
显示如下:
此处输入图片的描述

此处输入图片的描述
可以对中文进行分词,分词包配置成功。

在schema中添加做如下修改,指定被索引字段为店名,地址,种类。
此处输入图片的描述
此处输入图片的描述

导入中文文档
此处输入图片的描述

样例搜索
查询位于金牛区的店,返回店名。
此处输入图片的描述
指定店名进行查询
此处输入图片的描述
查询卖水饺的店,返回店名,
此处输入图片的描述

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注