对于共享云端硬盘中的文件,全文搜索无法按预期工作

问题描述 投票:0回答:1

我正在使用 Google Drive API 在个人和共享云端硬盘中搜索包含特定文本的文件。在个人和共享云端硬盘上搜索时,我的查询工作正常,但当我仅指定共享云端硬盘时,无法返回结果。我正在使用 Google Drive v3 API。我注意到跨文件类型(即 Google Docs、PDF 和 DOCX)存在此问题。

我的共享驱动器中有一个带有“最高法院”文本的 PDF 文件。

我使用以下查询来搜索个人云端硬盘文件夹 (

1gMnP7mt-WQ3qEm8ldi0fSz_jPrQniZSL
) 和共享云端硬盘 (
0AKlb0zenjwlyUk9PVA
)。这将返回文件:

fullText contains 'Supreme Court' and ('1gMnP7mt-WQ3qEm8ldi0fSz_jPrQniZSL' in parents or '0AKlb0zenjwlyUk9PVA' in parents) and trashed = false
curl --location 'https://www.googleapis.com/drive/v3/files?q=fullText%20contains%20%27Supreme%20Court%27%20and%20(%271gMnP7mt-WQ3qEm8ldi0fSz_jPrQniZSL%27%20in%20parents%20or%20%270AKlb0zenjwlyUk9PVA%27%20in%20parents)%20and%20trashed%20%3D%20false&fields=nextPageToken%2Cfiles(id%2Cname%2Cparents)&spaces=drive&supportsAllDrives=true&includeItemsFromAllDrives=true' \
--header 'Authorization: Bearer <ACCESS_TOKEN>'

但是,当我将查询修改为仅在共享云端硬盘中搜索时:

fullText contains 'Supreme Court' and ('0AKlb0zenjwlyUk9PVA' in parents) and trashed = false
curl --location 'https://www.googleapis.com/drive/v3/files?q=fullText%20contains%20%27Supreme%20Court%27%20and%20(%270AKlb0zenjwlyUk9PVA%27%20in%20parents)%20and%20trashed%20%3D%20false&fields=nextPageToken%2Cfiles(id%2Cname%2Cparents)&spaces=drive&supportsAllDrives=true&includeItemsFromAllDrives=true' \
--header 'Authorization: Bearer <ACCESS_TOKEN>'

它返回零结果,这不是我所期望的。

有没有人遇到类似的问题或者可以提供一些指导?

google-drive-api full-text-search
1个回答
0
投票

如果

0AKlb0zenjwlyUk9PVA
中的
'0AKlb0zenjwlyUk9PVA' in parents
是驱动器ID(共享Drive的根文件夹ID),那么下面的查询参数怎么样?

corpora=drive&
driveId=0AKlb0zenjwlyUk9PVA&
includeItemsFromAllDrives=true&
q=fullText contains 'Supreme Court' and trashed = false&
supportsAllDrives=true

当这个查询参数用于你的显示curl命令时,下面的修改如何?

curl --location 'https://www.googleapis.com/drive/v3/files?corpora=drive&driveId=0AKlb0zenjwlyUk9PVA&includeItemsFromAllDrives=true&q=fullText%20contains%20%27Supreme%20Court%27%20and%20trashed%20%3D%20false&supportsAllDrives=true' \
--header 'Authorization: Bearer <ACCESS_TOKEN>'

参考:

  • 方法:files.list

  • 搜索查询词和运算符

    如果包含双引号括起来,则 contains 运算符会匹配精确的字母数字短语。例如,如果文档的 fullText 包含字符串

    "Hello there world"
    ,则查询 fullText contains
    '"Hello there"'
    将返回结果,但查询 fullText contains
    '"Hello world"'
    不会返回结果。此外,由于搜索是字母数字,因此如果文档的全文包含字符串
    "Hello_world"
    ,则查询 fullText contains
    '"Hello world"'
    将返回结果。

© www.soinside.com 2019 - 2024. All rights reserved.