Solr 查询数据
Apache Solr 除了存储数据外,还提供查询数据的功能。 Solr 提供了一些参数,用户可以使用这些参数来查询其中存储的数据。
在下表中,我们列出了 Apache Solr。
参数 | 说明 |
q | 是Apache Solr的主要查询参数。它们的相似度将文档与此参数中的术语打分。 |
fq | 代表Solr的过滤查询,将结果集限制为匹配这个过滤器的文档。 |
start | 它代表页面结果的初始偏移量,该参数的默认值为0。 |
rows | rows 参数表示每页需要检索的文件数。该参数的默认值为十。 |
sort | 指定以逗号分隔的字段列表,查询结果将根据该列表进行排序。 |
fl | 它指定要为结果集中的所有文档返回的字段列表。 |
wt | 此参数表示我们想要查看结果的响应编写器的类型。 |
我们可以看到上面所有的参数都是查询Solr文档的选项。转到 Apache Solr 的主页,在页面的左侧,单击 Query。我们将被重定向到查询参数的字段。
检索记录
假设我们在名为 my_core 的核心中有三个不同的记录。要从选定的核心中获取详细数据,我们必须为 soecified 文档传递字段的名称-值对。例如,如果我们想要获取具有字段 id 值的记录,我们必须将字段的名称和值对作为-Id:001 作为 q的值传递/strong> 参数并运行查询命令。
同样,我们可以通过将 *:* 作为值传递给 q 来从索引中获取所有记录,如下面的屏幕截图所示。
我们可以通过传递两个从二级记录中获取记录作为 start 参数的值,如下面的屏幕截图所示。
限制记录数
我们可以通过定义一个值来限制记录数在参数行s。例如,我们可以将 Query 中的记录总数限制为 2,将值 2 绕过到参数行中,如下面给定的屏幕截图所示。
Response Writer Type
我们可以通过选择一个来获取所需的文档类型响应来自 wt 参数提供的数据。
我们选择了 .csv 格式来获取上图中 Apache Solr 的响应。
字段列表
如果我们想要输出文档中的特定字段,我们需要将所需字段的列表(以逗号分隔)作为值传递给属性 fl。
在在下面的示例中,我们检索字段-id、phone 和 first_name。
拼写检查
我们将看到如何使用 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>
分面是 Solr 最有用的功能之一。当我们将其与传统数据库和 NoSQL 数据存储进行比较时。分面搜索(也称为分面导航或分面浏览)允许用户查看其搜索结果的高级细分,这些搜索结果基于其文档的一个或多个方面进行搜索。 ...