Solr查询数据

xiaoxiao2021-03-01  328

【solr查询参数】

Apache Solr还提供了一些在需要时查询数据的功能。 Solr提供了一些参数,可以使用它们来在查询存储的数据。

在下表中,我们列出了Apache Solr中提供的各种常用的一些查询参数。

您可以查看所有这些参数作为查询Apache Solr的选项。访问Apache Solr的主页。 在页面的左侧,单击选项“查询(Query)”。 在这里,可以查看查询参数的字段。

【检索记录】

1、要从所选核心中检索特定记录,则需要传递特定文档的字段的名称和值对。例如,如果要使用字段id和值来检索记录,则需要将字段的名称 - 值对作为参数q的值传递为 id:973825,然后执行查询。

/2、以同样的方式,您可以通过将*:*作为值传递给参数q来检索索引中的所有记录,如下面的屏幕截图所示。

3、查询匹配的方法:

solr里面提供了很多查询匹配的方法例如:连接符要大写(AND、OR等)

1.使用*:item_title:飞*

2.使用AND :拼接查询 item_title:飞* AND  id:973825

3.使用OR: item_title:飞* OR  id:973825

4. 否: item_title:( NOT  *飞* )  ,也可以用过滤query.addFilterQuery(" item_title:( NOT  *飞* )");

5.名字匹配法:之前做搜索的时候,名字设置成了分词,然后分词结果不太准确,比如:ABC,它可能分成了AB 然后没有C,所以你在查询的时候,就查不到ABC。之前的分词是IK

<fieldType name="text_ik" class="solr.TextField">     <analyzer type="index" class="org.wltea.analyzer.lucene.IKAnalyzer"/>     <analyzer type="query" class="org.wltea.analyzer.lucene.IKAnalyzer"/>   </fieldType>

出现了上述问题,然后我们研究了一下schema.xml里面的属性类型,之前用text_ik, 改成了text_general,这样它就可以把ABC分成了A,B,C 通过一个其中的一个字或者ABC都可以检索了,就不用上面的模糊匹配了,就算匹配了,也不太准,可能把自己需要的那一行数据放到了第七八行,而不是第一行。如果按照上面修改,就可以把想要的数据放到第一位了

【从第2个记录开始检索10条记录】

可以通过将1作为值传递给参数start来从第二条记录中检索记录,可以通过在rows参数中指定值来限制记录数。

【响应写入器类型】

可以通过从参数wt的所提供的值中,选择一个来获取所需文档类型的响应。在上面的例子中,我们选择了.json格式来获取响应。

【字段列表】

如果想在结果文档中显示指定字段,则需要传递必填写的字段列表,用逗号分隔,作为属性fl的值。

在以下示例中,尝试检索以下几个字段: id,item_title。

转载请注明原文地址: https://www.6miu.com/read-4403534.html

最新回复(0)