Solr教程

Solr 查询数据

Apache Solr 中查询数据

Apache Solr 除了存储数据外,还提供查询数据的功能。 Solr 提供了一些参数,用户可以使用这些参数来查询其中存储的数据。
在下表中,我们列出了 Apache Solr。
参数 说明
q 是Apache Solr的主要查询参数。它们的相似度将文档与此参数中的术语打分。
fq 代表Solr的过滤查询,将结果集限制为匹配这个过滤器的文档。
start 它代表页面结果的初始偏移量,该参数的默认值为0。
rows rows 参数表示每页需要检索的文件数。该参数的默认值为十。
sort 指定以逗号分隔的字段列表,查询结果将根据该列表进行排序。
fl 它指定要为结果集中的所有文档返回的字段列表。
wt 此参数表示我们想要查看结果的响应编写器的类型。
我们可以看到上面所有的参数都是查询Solr文档的选项。转到 Apache Solr 的主页,在页面的左侧,单击 Query。我们将被重定向到查询参数的字段。
在 Apache Solr 中查询数据

检索记录

假设我们在名为 my_core 的核心中有三个不同的记录。要从选定的核心中获取详细数据,我们必须为 soecified 文档传递字段的名称-值对。例如,如果我们想要获取具有字段 id 值的记录,我们必须将字段的名称和值对作为-Id:001 作为 q的值传递/strong> 参数并运行查询命令。
在 Apache Solr 中查询数据
同样,我们可以通过将 *:* 作为值传递给 q 来从索引中获取所有记录,如下面的屏幕截图所示。
Querying Data in Apache Solr
我们可以通过传递两个从二级记录中获取记录作为 start 参数的值,如下面的屏幕截图所示。
在Apache Solr中查询数据

限制记录数

我们可以通过定义一个值来限制记录数在参数行s。例如,我们可以将 Query 中的记录总数限制为 2,将值 2 绕过到参数行中,如下面给定的屏幕截图所示。
Querying Data in Apache Solr

Response Writer Type

我们可以通过选择一个来获取所需的文档类型响应来自 wt 参数提供的数据。
Querying Data in Apache Solr
我们选择了 .csv 格式来获取上图中 Apache Solr 的响应。

字段列表

如果我们想要输出文档中的特定字段,我们需要将所需字段的列表(以逗号分隔)作为值传递给属性 fl。
在在下面的示例中,我们检索字段-id、phone 和 first_name。
Q在 Apache Solr 中查看数据

拼写检查

我们将看到如何使用 Solr 的拼写检查搜索组件。自动拼写检查是一项核心搜索功能,大多数用户希望无需思考即可工作。在进行拼写检查时,您需要考虑四种一般情况:
显示的查询包含一个或多个拼写错误的术语,导致没有相关匹配。如果有建议可用,我们的搜索客户端应自动执行建议的术语并向用户显示信息性消息。例如,我们搜索的是atmosphere,而不是大气。 它包含一个罕见的术语,导致一些点击;建议可用且点击率更高,因此您可能想要提示用户您的意思是……? 它包含拼写正确的术语,但它们的数据与查询术语中提供的数据较少或大致相同。我们的搜索解决方案不应提示用户做出替代决定。 查询包含索引中不存在的术语;建议不可用。
从上面给出的场景中,我们可以得到拼写检查解决方案的两个关键要求:
我们需要为查询中的每个术语确定建议的术语,即一些字典来查找与用户输入的术语相似的术语。 其次,我们需要知道所有建议的术语匹配的文档数量。

拼写检查示例

我们可以使用 http 命令行实用程序来运行代码清单,以使用拼写错误的术语大气来查询 Apache Solr,如下所示列表。
使用拼写错误的查询词"atmosphear"查询 Solr。
查询
http://localhost:8983/solr/solrpedia/select?q=atmosphear
响应
<response>
<lst name="responseHeader">...</lst>
<result name="response" numFound="0" start="0"></result>
<lst name="spellcheck">
<lst name="suggestions">
<lst name="atmosphear">
<int name="numFound">1</int>
...
<arr name="suggestion">
<str>atmosphere</str>
</arr>
</lst>
<lst name="collation">
<str name="collationQuery">atmosphere</str>
<int name="hits">86</int>
<lst name="misspellingsAndCorrections">
<str name="atmosphear">atmosphere</str>
</lst>
</lst>
</lst>
</lst>
</response>
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4