Docs 菜单
Docs 主页
/ /

如何将非字母数据作为字符串进行搜索

本教程演示了如何通过将非字符串字段转换为字符串并将其存储在物化视图中来对非字符串字段运行字符串特定的查询。物化视图可让您使用特定于字符串的操作符来查询转换后的字段,并在源集合中保持原始数据不变。

本教程将指导您完成以下步骤:

  1. 在示例集合上创建物化视图

  2. 在物化视图上创建MongoDB Search 索引

  3. 针对物化视图中转换的字段运行MongoDB Search 查询

开始之前,请确保您的集群满足 先决条件中所述的要求。

本部分演示如何在 airbnb-mat-viewsample_airbnb.listingsAndReviews 上创建名为 的物化视图集合。此视图将源集合中的各种数字和日期字段存储为字符串字段。

要运行本教程在转换字段上运行查询阶段中的查询,您需要在 airbnb_mat_view 物化视图中的转换字符串字段上创建MongoDB Search 索引。

以下 JSON 定义定义了 airbnb_mat_view 物化视图上的 MongoDB Search 索引。您可以使用动态或静态映射来指定要在集合中索引的字段,具体取决于要运行的查询类型。要学习;了解字段映射或MongoDB Search索引语法的更多信息,请分别参阅定义字段映射索引参考资料

以下JSON MongoDB Search索引定义使用动态映射对物化视图中的字段索引。您可以使用此索引通过queryString操作符运行查询。

您无法使用autocomplete操作符对动态索引字段运行查询。

{
"mappings": {
"dynamic": true
}
}

以下JSON MongoDB Search索引定义使用静态映射将物化视图中的字段索引为autocomplete 类型。您可以使用此索引通过autocomplete操作符运行查询。

不能使用 queryString 操作符对索引为 autocomplete 类型的字段运行查询。

{
"mappings": {
"dynamic": false,
"fields": {
"accommodatesNumber": [
{
"dynamic": true,
"type": "document"
},
{
"minGrams": 1,
"type": "autocomplete"
}
],
"lastScrapedDate": [
{
"dynamic": true,
"type": "document"
},
{
"type": "autocomplete"
}
],
"maximumNumberOfNights": [
{
"dynamic": true,
"type": "document"
},
{
"minGrams": 1,
"type": "autocomplete"
}
]
}
}
}

要学习;了解如何使用您的首选接口创建上面定义的索引,请参阅支持的客户端。

您可以对已转换为字符串的 numeric 和 date 字段运行查询。本教程使用 queryStringautocomplete 操作符来搜索属性。查询使用了下列管道阶段:

  • $search 搜索集合的阶段

  • $limit 阶段将输出限制为 5 个结果。

  • $project 要排除的阶段 _id

在本部分中,您将连接到集群并使用操作符针对 airbnb_mat_view集合中的字段运行示例查询。

注意

您无法对物化视图中已转换为字符串的日期和数字字段运行近期范围查询。

后退

为数据模型设计搜索

在此页面上