如何在Azure AI Search中查询.msg邮件的日期范围?求JSON查询示例
使用Azure AI Search查询.msg邮件日期范围的方法
在Azure AI Search中查询.msg邮件的日期范围,可通过Lucene查询语法或OData过滤条件实现,以下是针对你提供的两个JSON示例的修改方案:
1. 全查询模式下指定日期范围
针对第一个查询结构,你可以在search字段中使用Lucene日期范围语法,格式为metadata_creation_date:[起始日期 TO 结束日期],日期需遵循ISO 8601格式(如yyyy-MM-ddTHH:mm:ssZ)。[]表示包含边界值,{}表示排除边界值。
基础日期范围查询示例:
{ "queryType": "full", "search": "metadata_creation_date:[2023-01-01T00:00:00Z TO 2023-12-31T23:59:59Z]", "searchMode": "all" }
结合关键词的查询示例(比如同时搜索主题含"项目"的邮件):
{ "queryType": "full", "search": "metadata_subject:项目 AND metadata_creation_date:[2023-01-01T00:00:00Z TO 2023-12-31T23:59:59Z]", "searchMode": "all" }
更推荐用filter参数实现精确日期过滤(语义更清晰),此时search字段可留空或填写其他关键词:
{ "queryType": "full", "search": "", "filter": "metadata_creation_date ge 2023-01-01T00:00:00Z and metadata_creation_date le 2023-12-31T23:59:59Z", "searchMode": "all" }
2. 结合主题搜索与日期范围过滤
针对第二个查询结构,需添加filter参数指定日期范围,search字段填写主题关键词,searchFields保持指定为metadata_subject即可:
带主题关键词的过滤示例:
{ "search": "项目进度", "select": "metadata_creation_date, metadata_subject", "searchFields": "metadata_subject", "filter": "metadata_creation_date ge 2023-06-01T00:00:00Z and metadata_creation_date le 2023-06-30T23:59:59Z", "count": true }
仅过滤日期范围的示例(search填*匹配所有文档):
{ "search": "*", "select": "metadata_creation_date", "searchFields": "metadata_subject", "filter": "metadata_creation_date ge 2023-06-01T00:00:00Z and metadata_creation_date le 2023-06-30T23:59:59Z", "count": true }
注意事项
- 日期必须严格使用ISO 8601格式,否则查询会失效
- 若你的索引中日期字段不是
metadata_creation_date,需替换为实际字段名 - 使用
filter参数时,无需设置queryType为full(默认simple模式即可支持)
内容的提问来源于stack exchange,提问作者user7395346
相关产品推荐
相关产品推荐

