CN108027817B - 基于用户的组关联建议查询 - Google Patents
基于用户的组关联建议查询 Download PDFInfo
- Publication number
- CN108027817B CN108027817B CN201580083122.4A CN201580083122A CN108027817B CN 108027817 B CN108027817 B CN 108027817B CN 201580083122 A CN201580083122 A CN 201580083122A CN 108027817 B CN108027817 B CN 108027817B
- Authority
- CN
- China
- Prior art keywords
- user
- prefix
- subset
- prefix index
- group identifier
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9032—Query formulation
- G06F16/90324—Query formulation using system suggestions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3322—Query formulation using system suggestions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2423—Interactive query statement specification based on a database schema
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
方法、***和装置包括被编码在计算机存储介质上用于促进基于组的文档共享环境中的搜索查询的自动完成的计算机程序。在一个方面中,一种方法包括维持包括前缀索引条目的前缀索引的动作。每个前缀索引条目可以包括前缀、组标识符和文档的部分。附加动作可以包括:接收与搜索域相关联的来自用户的输入;确定与提交了所接收到的输入的用户相关联的用户标识符;将所述用户标识符映射到特定组标识符;基于所接收到的输入和所述前缀索引,获得一个或多个候选查询建议;以及基于所述特定组标识符,选择所述候选查询建议的子集。其它动作可以包括将所述候选查询建议的子集提供给所述用户作为建议查询。
Description
背景技术
促进电子邮件、文档管理、多媒体文件管理等的云服务已经变得日益可用于具有对互联网连接的访问权的任何用户。易于访问且经济实惠的云存储的增长已经促使用户行为从普遍依赖于将数据存储在用户的本地个人存储设备上转变为更大程度地依赖于利用一个或多个可用的云存储服务来存储数据。这样的云服务允许用户在任何地方访问而不管用户设备,其促使用户将大量的信息存储在云存储仓库中。然而,随着用户的数字内容项的库增加,单个特定内容项可以变得愈发更难以在没有适当的信息发现、搜索和检索过程的情况下定位。
云存储的益处还已经使其愈发易于在用户组中间共享文档。用户组的该方面增加了基于云的***中的搜索和检索技术的复杂性。
虽然相对于基于云的文档存储描述上文所标识的挑战,但是应注意到,相同或者类似挑战可以存在于其它计算机网络中。例如,相同或者类似挑战可以存在于计算机设备的任何网络中,其促进特定用户组之间的电子邮件、文档、笔记或者任何其它类型的数据的共享。
发明内容
根据由本说明书所描述的主题的一个实施方式,建议查询的集合可以被提供到终端用户。建议查询的集合可以包括从经由文档共享***在用户组中间共享的文档提取的文本。建议查询的集合可以以承诺与每个共享文档相关联的基于组的访问控制限制的方式选自候选查询的更大集合。基于组的访问控制可以基于前缀索引中所维持的组标识符来实施。基于组的访问控制可以从与每个共享文档相关联的预先存在的访问控制限制导出。
在一些方面中,本说明书中所描述的主题可以被实现在可以包括维持包括多个前缀索引条目的前缀索引的动作的方法中,其中,每个前缀索引条目包括前缀、组标识符和文档的部分。附加动作可以包括:接收与搜索域相关联的来自用户的输入;确定与提交了所接收到的输入的用户相关联的用户标识符;将所述用户标识符映射到与用户相关联的特定组标识符;基于所接收到的输入和所述前缀索引,获得一个或多个候选查询建议;以及基于与用户相关联的特定组标识符,选择所述候选查询建议的子集。附加动作还可以包括将所述候选查询建议的子集提供给所述用户作为建议查询。
其它版本包括对应的***、装置和计算机程序,其被配置成执行在计算机存储设备上编码的方法的动作。
这些和其它版本各自可以可选地包括以下特征中的一个或多个。例如,在一些实施方式中,与搜索域相关联的来自用户的输入可以包括零字符输入。替选地,与搜索域相关联的来自用户的输入可以包括单个字符。
在一些方面中,方法可以包括动作,所述动作包括接收与搜索域相关联的来自用户的两个或更多个输入。对于来自所述用户的每个所接收到的输入所执行的附加动作可以包括:确定与提交了所接收到的输入的所述用户相关联的用户标识符;将所述用户标识符映射到与用户相关联的特定组标识符基于所接收到的输入和所述前缀索引,获得一个或多个候选查询建议;以及基于与所述用户相关联的所述特定组标识符,选择所述候选查询建议的子集。其它动作可以包括将所述候选查询建议的子集提供到用户作为建议查询。
在某些实施方式中,基于组标识符选择候选查询的子集可以包括确定与和所接收到的输入相对应的前缀相关联的前缀索引条目的子集的动作。然后,对于每个前缀索引条目,附加动作可以包括:确定与所述用户相关联的所述特定组标识符是否与和所述前缀索引条目相关联的组标识符相对应;并且响应于与所述用户相关联的所述特定组标识符与和所述前缀索引条目相关联的所述组标识符相对应的确定,选择与所述前缀索引条目相关联的所述文档的所述部分用于候选查询包括在候选查询的所述子集中。
其它实施方式还可以包括用于生成与每个候选查询建议相关联并且对于每个特定组唯一的组得分并且基于组得分对建议查询进行排名的动作,其中,候选查询可以包括一个或多个词语。在一些实施方式中,组得分可以基于一个或多个词语中的每一个在与每个相应的用户组相关联的文档中出现的次数。
在其它方面中,本说明书中所实现的主题可以被实现在方法中,其可以包括接收由用户输入到查询输入域中的一个或多个字符的串的动作。其它动作可以包括:向自动完成引擎传送与所述一个或多个字符的串相关联的建议查询的请求;接收与所述字符的串相关联的一个或多个特定建议查询;并且提供与被指示为能够由包括所述用户的用户组访问的一个或多个资源相关联的所述特定建议查询中的一个或多个以供输出。
其它版本包括对应的***、装置和计算机程序,其被配置成执行在计算机存储设备上编码的方法的动作。
这些和其它版本各自可以可选地包括以下特征中的一个或多个。例如,针对输出所提供的一个或多个特定建议搜索查询可以不包括与被指示为能够由不包括所述用户的另一用户组访问的一个或多个其它资源相关联的查询项。
附图说明
图1是根据本公开的一个方面的可以提供建议查询的文档共享***的示例的上下文示图的示例。
图2是根据本公开的一个方面的可以被用于提供建议查询的过程的示例的流程图。
图3示出了可以被用于实现本文所描述的技术的计算设备和移动计算设备的示例。
具体实施方式
图1是根据本公开的一个方面的可以提供建议查询的文档共享***的示例的上下文示图的示例。***100可以包括至少文本提取单元 110、前缀索引120和自动完成引擎130。
由本说明书所公开并且在图1中所图示的主题的至少一个方面涉及包括被实现在计算机存储介质上用于存储、搜索并且检索促进在用户或者用户组中间共享文档的环境中的文档的计算机程序的方法、***和装置。用户组可以包括例如一个或多个用户的逻辑关联。在本公开的一个方面中,用户组可以明确地由文档共享***100的用户、***管理员等定义。替选地,例如,用户组可以基于例如与特定域相关联的多个用户、在两个或更多个用户之间共享文件等来推断。
文档共享***100可以经由促进共享文档的计算机的任何网络来实现,包括但不限于与由一个或多个基于云的计算设备托管的基于云的文档共享***交互的一个或多个移动计算设备。这样的文档共享***可以根据不同水平的范围和复杂性提供电子文档的存储、管理和/或共享。例如,这样的文档共享***可以被实现在小办公环境中。替选地,例如,大型跨国公司可以利用这样的文档共享***将公司的文档的相当一部分存储在云中。替选地,可以使这样的文档共享***经由互联网公开地可用于经由互联网与文档共享***交互的任何注册用户。
文本提取单元110可以被配置为接收或者以其它方式获得一个或多个文档。例如,文本提取单元可以被配置为接收由用户Alex 102创建142并且经由一个或多个网络上载144的文档140。文档140的至少一部分可以包括文本内容140a。例如,用户Alex 102可以创建旨在用于有限观众并且包括陈述“Surprise Birthday Party For Charlie(查理的惊喜生日派对).”的文本内容140a的文档140。另外,***100可以辅助用户Alex 102生成元数据146。例如,***100可以向用户Alex 102 提供提示,请求用户Alex 102提供一个或多个类型的元数据是否应当针对文档140来创建的指示。例如,提示可以让用户Alex 102输入或者选择能够访问文档140的每个用户或者用户组的名字。替选地,或者另外,元数据146可以由***100自动地生成。例如,***100可以基于用户Alex 102如何与文档140交互而自动地生成元数据146。在一个方面中,例如,***100可以基于用户Alex将文档140分布到一个或多个用户的特定组,生成与文档140有关的元数据146。*** 100可以然后将所生成的元数据146与文档140相关联。
除了其它方面,元数据146可以包括例如指示对文档40的访问限于用户的一个或多个组的数据,所述用户的所述一个或多个组可以是选自***100的所有***的组。在本公开的至少一个方面中,指示对文档140的访问被限制的数据可以包括例如组ID 148。虽然相对于***100所描述的示例呈现其中用户Alex 102已上载包括对文档140 的访问限于包括文本提取单元110的文档仓库的元数据146的文档140 的场景,但是本公开不需要是这样限制的。例如,用户(诸如例如用户Alex 102)还可以能够将文档上载到文档仓库,包括可以与文档140 类似但是不包括对文档的使用的任何限制的文本提取单元110。例如,文档可以与指示该文档应当公开地可用于所有用户的元数据相关联。在一些实施方式中,与文档相关联的任何元数据的缺少可以指示文档应当是公开地可用的。
相对于***100的至少一个示例,用户Alex 102可能想要将对文档140的访问限于用户的第一特定组。例如,假定用户Alex 102正计划针对用户Charlie 106的惊喜生日派对,并且用户Alex 102、用户Brian 104和用户Charlie 106全部是利用与***100的各方面一致的文档共享***的朋友。用户Alex 102可以决定创建可以包括阐述用户Charlie 106的惊喜生日派对的计划的文本内容140a的文档140。例如,文档 140可以包括记载“Surprise Birthday Party For Charlie.”的文本内容 140a。然后,在创建文档140之后,为了保留惊喜,用户Alex 102可以选择与用户Brian 104而不是用户Charlie 106共享文档140。用户 Charlie对文档140的访问可以例如基于以下各项中的一项或多项的评价来限制:与***100的每个用户相关联的用户ID、与***100的每个用户组相关联的组ID和/或可以与文档140相关联的访问控制列表。
访问控制列表可以是白名单,其可以包括能够访问与访问控制列表相关联的一个或多个文档的零个或多个用户和/或零个或多个用户组的列表。替选地,或者另外,访问控制列表可以是黑名单,其可以包括可以被拒绝对与访问控制列表相关联的特定文档的访问的零个或多个用户和/或零个或多个用户组的列表。虽然单个白名单或者黑名单可能足以解决对一个或多个文档的访问,但是可以存在其中用户100可以访问白名单和黑名单二者以便确定特定用户是否能够访问一个或多个文档的某些实例。
一个或多个个体用户可以被添加到访问控制列表或从其被移除。用户可以通过例如将与用户相关联的用户ID添加到访问控制列表而被添加到访问控制列表。用户可以通过从访问控制列表移除与用户相关联的用户ID从访问控制列表被移除。替选地,或者另外,一个或多个用户可以与组ID相关联。在这样的实例中,组ID(诸如例如组ID 148) 可以被添加到访问控制列表以指示整个组的一个或多个用户被授予对文档(诸如例如文档140)的访问。整个组的一个或多个用户可以通过移除与特定访问控制列表相关联的组ID从访问控制列表被移除。从访问控制列表移除组ID可以指示与组ID相关联的一个或多个用户的组可以不再访问与该访问控制列表相关联的文档。在从访问控制列表移除用户ID和/或组ID的实例中,与移除相关联的用户的访问权可以立即终止。***100可以促进将用户ID映射到特定组ID。这样的映射可以能够标识当提供有用户的用户ID时特定用户与其相关联的组的枚举列表。
控制对一个或多个文档的访问的组ID的使用可以促进在未直接地更改访问控制列表的情况下终止文档访问权限。例如,如上文所描述的,仅组ID可以与文档的访问控制列表相关联。进一步地,每个组 ID可以与多个用户相关联。因此,用户的访问权可以通过从与特定组 ID相关联的名字、用户ID等的列表移除特定用户的名字、用户ID等来终止。
文本提取单元110还可以接收或者以其它方式获得来自其它源的文档。例如,文本提取单元可以被配置成从一个或多个远程文档源定期地获得文档。例如,文本提取单元110可以采用网络爬虫、网络蜘蛛等,其可以扫描经由一个或多个网络(诸如例如互联网)可访问的内容源,以便标识文档(诸如例如可以获得154、存储并且索引的文档 150)。替选地,或者另外,当文档150由文档共享***100的一个或多个用户上载时,文档150可以由文本提取单元110接收。文档150 的至少一部分可以包括文本内容150a。例如,文档150可以包括陈述“Bicycle Parts For Sale(出售的自行车配件).”的文本内容150a。在该特定实例中,文档150可以与元数据156相关联,所述元数据156 可以指示文档150与可以指示文档150可以通常可用于公众的组ID 158 相关联。可以通常可用于公众的文档可以对文档共享***100的所有用户可访问而不管用户ID、组ID或者可以与每个特定用户相关联的特定访问权。
当文档150被创建时,元数据156可以变得与文档150相关联。例如,文档150的创建者可以利用元数据156主动地标记文档150来指示该文档可以公开地可用于文档共享***100的所有用户。替选地,或者另外,缺少文档150的创建者的明确指示将限制对文档150的访问的元数据与文档150相关联,文档150可以默认自动地与元数据156 相关联以指示文档可以公开地可用于文档共享***100的所有用户。替选地,或者另外,***100可以辅助文档150的创建者生成元数据 156。例如,***100可以向文档的创建者提供提示以便请求文档的创建者提供确认元数据156应当变得与文档150相关联的指示。替选地,或者另外,元数据150可以由***100自动地生成。例如,***100 可以基于文档150的创建者或者其它用户如何与文档150交互而自动地生成元数据156。在本公开的各方面中,***100可以基于文档150 的分发将元数据156与文档150相关联。例如,***100可以自动地将元数据156与文档150相关联以便在检测到文档150被分发到未与任何特定私人组相关联的至少一个用户时,将文档150标记为公开的。
文本提取单元10可以被配置成从相应地在144和154处已经接收或者以其它方式获得的文档140、150提取文本内容140a、150a。例如,文本提取单元可以被配置成分析每个文档140、150并且从文档提取一个或多个词语或者短语。所提取的词语或者短语可以提供被包含在文档140、150内的内容的建议。在某些实例中,所提取的词语或者短语可以足以标识文档140、150。所提取的词语或者短语可以包括例如来自文档140、150的包括文档的标题或者文档的主体的任何部分的任何词语或者短语。所提取的词语或者短语还可以包括例如一元语法、二元语法、n元语法、完整句子或者部分句子。在某些实例中,文本提取单元110可以被配置成提取与文档140、150相关联的元数据146、156。所提取的元数据可以包括但不限于例如可以提供关于可以与文档140、 150相关联的任何访问限制的指示的元数据148、158。替选地,或者另外,所提取的元数据可以包括例如可以先前已与文档相关联的关键字。所提取的内容和/或元数据可以在116处被***100用于创建前缀索引120。
文本提取单元110还可以被配置成基于可以从文档140、150提取的每个词语、短语等的发生,计算各种权重。例如,文本提取单元110 可以能够分析接收到的文档140、150以确定每个相应文档中的最频繁使用的词语。替选地,或者另外,文本提取单元10可以确定每个所提取的词语、短语、一元语法、二元语法、n元语法、完整句子或者部分句子在特定文档中出现的次数。每个所提取的词语、短语、一元语法、二元语法、n元语法、完整句子和/或部分句子可以与一个或多个计数相关联。例如,本公开的一个方面可以促进确定组词项频率计数。组词项频率计数可以确定特定词语、短语等在与特定组ID相关联的文档的语料库中出现多少次。例如,组词项频率计数可以包括短语“Birthday Party For Charlie”在对包括用户(诸如例如用户Alex 102和用户Brian 104)的组ID A、B 148可访问的文档中出现的次数。替选地,或者另外,每个词语、短语等可以与公共词项频率计数相关联。公共词项频率计数可以与词语、短语等在公开可用文档中出现多少次相关联。这样的频率计数可以例如被用于对建议搜索查询进行加权和/或排名,如下面在本文中所描述的。
替选地,或者另外,文本提取单元110还可以将得分指派给从其提取词语、短语等的特定文档。这样的文档得分可以基于文档的质量或者新鲜度。质量得分可以指示特定文档可以是多么好、有帮助和/或有益的。新鲜度得分可以指示特定文档在多么近期被评论、更新等。因此,质量得分或者新鲜度得分以及上文所标识的频率计数中的一个或多个可以单独或者彼此结合使用,以便对建议搜索查询进行加权和/ 或排名。例如,低文档质量得分可以减少可以以其它方式与高组词项频率计数相关联的建议搜索查询的相关性。替选地,例如,高文档质量得分可以增加可以以其它方式与相对低组词项频率计数相关联的建议搜索查询的相关性。基于一个或多个频率计数、文档质量得分和/或文档新鲜度得分将建议查询加权和/或排名的其它方式也落在本公开的范围内。
已经一般地关于纯文本文档描述了示例性***100。然而,本公开的主题不需要是这样限制的。例如,文档(诸如文档140、150)应当宽广地被解释为包括例如包含文本的电子文档、包含多媒体内容项 (诸如图像和视频)的电子文档、网页、web论坛、电子邮件、经由即时通讯软件的聊天会话或者经由计算机***促进的其它讨论、社交网络帖子、发布到网站的评述、通信录中的联系人、日历条目、笔记、搜索历史等。替选地,或者另外,***100还可以适用于促进共享音频文件、图像文件、视频文件和/或其组合的***。例如,文本提取单元可以被配置成在154处获得或者以其它方式接收图像文件。文本提取单元可以然后提取与图像文件相关联的元数据(诸如例如可以提供由图像文件所描绘的内容的描述的关键字)。所提取的关键字可以在 116处被***100用于创建前缀索引120。
前缀索引120可以包括可以被***100用于提供建议的搜索查询的数据结构。在某些实例中,前缀索引120可以概念地被实现在层次树形结构中。前缀索引120的每个条目可以包括至少例如前缀122、组 ID 124和所提取的文本126。前缀122可以包括可以与前缀索引120的特定条目的对应的所提取的文本126的初始一个或多个字符相关联的零个或多个字符。组ID 124可以包括可以各自唯一地标识特定组的一个或多个组标识符,所述特定组能够访问前缀索引120的特定条目的所提取的文本126所对应的文档140、150。例如,组ID124可以从与特定前缀索引条目127、128可以与其相关联的文档140、150相关联的访问控制列表获得。替选地,或者另外,组ID 124可以包括在文档 140、150由文档提取单元110获得或者以其它方式接收之后从文档 140、150提取的组ID 148、158。组ID 124可以用作可以被用于标识特定组的成员可以访问的前缀索引条目的子集的主键。所提取的文本 126可以包括由文本提取单元110从文档140、150提取的数据的部分。
前缀索引120可以包括用于每个相应文档140、150的一个或多个前缀索引条目127、128。前缀索引条目127是可以与文档140相关联的前缀索引条目的示例。例如,前缀索引条目127可以包括与所提取的文本“Birthday Party For Charlie.”相关联的前缀“Bi”。前缀索引条目27还可以与组ID“A,B”相关联,其可以提供仅包括用户Alex 102 和用户Brian 104的用户组可以访问与所提取的文本“Birthday Party For Charlie.”相关联的文档140的指示。虽然前缀索引条目127中阐述的组ID的示例包括可以对应于特定用户(诸如例如A、B)的数据的枚举列表,但是本公开不需要是这样限制的。相反,组ID可以包括可能单独无法破译的字符的串。
用户Alex 102、Brian 104和Charlie 106可以访问或者以其它方式查看对应于特定前缀索引条目127的所提取的文本126(如果其与对应于与前缀索引条目127相关联的一个或多个组ID 124的组ID相关联)。替选地,或者另外,访问控制列表可以基于前缀索引条目127的组ID 124咨询以便确定用户(诸如例如Brian 104或Charlie 106)是否可以能够访问或者以其它方式查看用于特定前缀索引条目127的所提取的文本126。关于对特定前缀索引条目127的所提取的文本126的访问的访问控制决策可以基于被用于确定一个或多个用户是否能够访问与特定前缀索引条目127的提取的文本126相关联的文档140的相同或者基本上类似的逻辑。
前缀索引条目128是可以与文档150相关联的前缀索引条目的示例。例如,前缀索引条目28可以包括与所提取的文本“Bicycle Parts For Sale.”相关联的“Bi”的前缀。前缀索引条目128还可以与组ID“Public”相关联,其提供文档共享***100的所有用户可以访问具有所提取的文本“Bicycle Parts For Sale,”的文档150而不管每个相应用户可以隶属于的组。
对于任何特定前缀索引(诸如例如前缀索引120)而言,可以存在与相同前缀相关联的多个前缀索引条目127、128。例如,关于前缀索引120在本文中所阐述的本公开的说明性示例包括各自与相同的两个字符前缀(例如,“Bi”)相关联的两个前缀索引条目127、128。因此,任何给定前缀索引120可以能够标识对应于接收到的用户输入的一个或多个前缀索引条目127、128。
然而,应预期到与任何特定前缀索引条目127、128相关联的前缀可以实际上具有任何字符长度。例如,前缀表120可以包括从零个字符变化到可以等于从文档提取并且在前缀索引120中被维持作为所提取的文本126的文本的最长串的最大数目的字符的前缀。例如,所提取的文本串“Birthday Party For Charlie”可以与包括包含空白前缀122 字段的零字符前缀和/或可以指示零字符前缀的其它字符(诸如例如值“NULL”)。替选地,或者另外,所提取的文本串“Birthday Party For Charlie”还可以与包括单个字符前缀(诸如例如“B”)的前缀索引条目相关联。替选地,或者另外,所提取的文本串“Birthday Party ForCharlie”还可以与包括两个字符前缀(诸如例如“Bi”)的前缀索引条目相关联。替选地,或者另外,所提取的文本串“Birthday Party For Charlie”还可以与包括三个字符前缀(诸如例如“Bir”)的前缀索引条目相关联。替选地,或者另外,所提取的文本串“BirthdayParty For Charlie”还可以与包括26个字符前缀(诸如例如“Birthday Party ForCharlie”)的前缀索引条目相关联。因此,所提取的文本串“Birthday Party For Charlie”可以以从零字符变化直到任何地方的这种方式与多个前缀索引条目相关联,并且包括例如包括包含与所提取的文本串相关联的最大数目的字符的前缀的前缀索引条目。
前缀索引120可以被配置成从自动完成引擎130接收118或者以其它方式获得输入,输入可以包括例如零字符输入、单字符输入或者多字符输入。零字符输入可以包括例如用户利用鼠标指针、手指或者其它输入设备选择搜索域。单字符输入可以包括例如经由输入设备输入单个字母数字字符。多字符输入可以包括例如经由输入设备输入两个或更多个字母数字字符。在从自动完成引擎130接收输入之后,前缀索引120可以促进搜索前缀索引120的每个前缀索引条目以便标识前缀索引条目的子集。前缀索引条目的子集可以包括例如包括对应于接收到的输入的前缀122的一个或多个前缀索引条目的组。对应于前缀索引条目的所标识的子集的每个前缀条目的所提取的文本126可以被用作候选查询建议。因此,对应于前缀索引条目127、128的所标识的子集中的每一个的所提取的文本条目126的子集可以形成一个或多个候选查询建议的组。
前缀索引120或者由***100所提供的其它程序逻辑还可以被用于确定与前缀索引条目的所标识的子集相关联的一个或多个候选查询建议的全部或子集是否应当响应118于由自动完成引擎130接收到的字符而返回。确定是否返回一个或多个候选查询建议的全部或子集可以基于例如接收到的用户ID和组ID 124。例如,与提交输入的特定用户相关联的用户ID可以被映射到组ID。然后,可以确定在前述映射中所获得的组ID是否对应于与所标识的候选查询建议的集合的每个候选查询建议相关联的组ID字段中的一个或多个以确定用户是否具有足够的访问特权来查看与所标识的候选查询建议中的每个候选查询建议相关联的所提取的文本内容。然后,用户有特权查看的所标识的候选查询建议的子集可以被返回118到自动完成引擎130。被返回到自动完成引擎130的一个或多个候选查询建议的子集可以被呈现给用户作为建议查询。前述功能的示例可以鉴于下面阐述的***100的示例使用情况进一步描述。
如本文所描述的,***100可以提供可以被一个或多个用户用于共享一个或多个文档的文档共享***。虽然***100至今已经相对于用户Alex 102、Brian 104和Charlie106以及仅两个示例性文档140、 150描述,但是本公开的主题可以由许多用户用于访问并且共享已经由文本提取单元110接收或者以其它方式获得并且然后处理并且解析以生成前缀索引120的大量的文档。
如上文所描述的,一个或多个文档140、150可以由文本提取单元 110接收或者以其它方式获得。在文档140、150由文本提取单元110 处理以生成前缀索引120之前或者之后,这样的文档140、150可以被存储在与***100相关联的一个或多个数据库中。因此,文档共享***100的一个或多个用户(诸如例如用户Alex 102、Brian 104和/或 Charlie 106)可以具有定位并且获得先前已经被存储在与***100相关联的一个或多个数据库中的一个或多个文档140、150。因此,***100 促进许可一个或多个用户提交可以被执行以便标识并且检索由与文档共享***100相关联的一个或多个文档数据库维持的文档的搜索查询的功能。在某些实例中,文档的这样的搜索和检索可以以认可与文档 140、150相关联的文档访问限制的方式向用户提供建议查询。例如,现有文档访问限制可以被扩展到可以作为完成未完成的用户查询的建议被提供到用户的一个或更多个候选搜索查询。
***100图示了由促进将文档访问限制扩展到跨宽广地共享文档的语料库的一个或多个候选搜索查询的本说明书中所公开的主题的各方面。根据本公开的一个方面,第一用户Brian 104可以将零个、一个或多个字符162输入160到可以与web浏览器166或者其它移动应用相关联的搜索域164中。替选地,或者另外,另一用户Charlie 106可以类似地将零个、一个或更多个字符182输入180到可以与web浏览器186或者其它移动应用相关联的搜索域184中。在由***100阐述的本示例的场境中,用户Brian 104和用户Charlie 106二者可以分别将相同的字符162、182(例如,“Bi”)输入到与其相应的浏览器166、 186中的每一个相关联的搜索域164、184。然而,应注意到,由本公开所描述的主题不需要是这样限制的。因此,文档共享***100的一个或多个用户可以各自输入不同的字符和/或不同的数目的字符。
与每个相应的搜索域164、184相关联的浏览器或者应用166、186 可以被配置成相应地从用户Brian 104和用户Charlie 106接收零个、一个或更多个字符输入字符。浏览器或者应用166、132可以将接收到的输入传递到自动完成搜索引擎130。响应于从浏览器或者应用166、186 接收到输入,自动完成搜索引擎130可以与前缀索引120交互118。例如,自动完成搜索引擎可以基于从浏览器或者应用166、186接收到的每个输入来查询前缀索引。对于被传递到前缀索引20的输入的每个字符而言,前缀索引120可以执行搜索以在逐输入基础上基于实时接收到的输入的每个字符,标识候选查询的子集。
例如,由针对用户(诸如例如用户Brian 104)的自动完成搜索引擎130所执行的第一搜索可以是何时用户Brian 104使用鼠标、手指或者其它输入设备以便选择或者激活搜索域162。响应于激活搜索域162,自动完成搜索引擎130可以将零字符输入传递到前缀索引120。前缀索引120可以标识与代表零字符输入的前缀字段相关联的所有前缀索引条目。用户Brian的用户ID可以被映射到一个或多个组ID。该映射的结果可以包括标识用户Brian04属于的组的组ID的列表。然后,前缀搜索120可以利用所获得的组ID标识可以对于用户Brian 104可访问的候选查询建议中的每个候选查询建议。前缀索引120可以然后向自动完成搜索引擎130返回响应于前缀索引120的零字符输入搜索并且还与用户Brian 104属于的组的组ID相关联的候选查询建议的全部子集。在一个实施方式中,前缀索引120的零字符输入搜索可以产生可以对于用户Brian 104可访问的每个候选查询建议。替选地,然而,响应于零字符输入的候选搜索查询建议的集合的选择可以基于场境。例如,不同的候选搜索查询可以基于用户已激活的特定搜索域、与用户相关联的用户ID、与用户ID相关联的语言设置等标识。
候选查询的实时逐输入标识可以当用户Brian 104经由搜索域162 提供后续输入时继续。例如,用户Brian 104可以使用输入设备以便将字符“B”输入到搜索域162中。响应于接收到输入字符“B”,自动完成搜索引擎130可以将输入字符“B”传递到前缀索引120。前缀索引120可以标识与包括字符“B”的前缀字段相关联的所有前缀索引条目。用户Brian的用户ID可以被映射到一个或多个组ID。该映射的结果可以包括标识用户Brian 104属于的组的组ID的列表。然后,前缀索引120可以确定用户Brian的组ID是否对应于与特定前缀索引条目 127、128相关联的组ID 124。前缀索引120可以然后响应于基于还与用户Brian 104属于的组的组ID相关联的输入字符“B”搜索前缀索引 120而返回候选查询建议的全部子集。例如,基于输入字符“B”搜索前缀索引120可以产生可以对于还与第一字符前缀“B”相关联的用户 Brian 104可访问的每个候选查询建议。自动完成引擎130可以继续从搜索域164、184接收输入字符,并且针对可以由用户(诸如例如用户 Brian 104)输入的一个或多个字符中的每个字符在逐输入基础上实时执行搜索。
响应于每个实时逐输入搜索,前缀索引120可以将候选查询的子集返回118到自动完成引擎130。自动完成引擎30可以在任何给定时间处返回候选查询的多个子集,其各自对应于从特定用户(诸如例如用户Brian 104和Charlie 106)接收到的特定输入。可以在前缀索引120 执行候选查询授权之后对每个相应用户可访问的候选查询的子集包括仅特定用户被授权访问的建议查询的子集。
在将一个或多个建议查询中的每个建议查询提供到每个对应的用户之前,自动完成引擎130可以执行一个或多个后处理技术以确定输出到对应的用户的列表中的每个建议查询的适当的排名。在136、138 处提供到每个对应的用户的建议查询的排名列表可以基于例如所计算的组词项频率计数、公共词项频率计数、文档质量得分、文档新鲜度得分和/或类似物。在某些实例中,与组词项频率计数相关联的建议查询可以被提示超过与公共词项频率计数相关联的建议查询。
响应于从自动完成引擎130接收到输出136、138,浏览器或者移动应用166、186可以生成包括一个或多个建议搜索查询170、172的弹出式显示。建议搜索查询可以基于例如组访问权限、组词项频率计数、公共词项频率计数、文档质量得分、文档新鲜度得分和/或类似物。因此,即使多个两个或更多个用户可以提供相同输入162、182,每个相应用户也可以基于至少与每个相应用户相关联的组访问权限,接收不同的建议查询。
例如,用户Brian 104和Charlie 106二者已提交输入字符“Bi”。然而,用户Brian104被呈现有建议查询170和172,而用户Charlie仅被呈现有建议搜索查询172。在由***100所描绘的示例中,建议搜索查询170对用户Charlie 106不可用,因为前缀索引条目127的组ID字段124指示仅组A、B的成员可以访问基于所提取的文本126所生成的建议查询。相反,用户Brian 104被提供建议查询172,因为用户Brian 104属于组A、B,其包括包含Alex102和用户Brian 104的用户的组。类似地,由于用户Alex 102也是组A、B的成员,因而建议搜索查询 172也可以对用户Alex 102可访问。
候选查询的实时逐输入标识的高效实施方式可以提供显著的安全性益处。例如,候选查询建议的实时逐输入限制可以允许用户从用户组的即时移除。例如,可以存在其中用户Brian 104和用户Alex 102陷入争论并且不再保持朋友的场景。因此,用户Alex 102可以决定终止组A、B中的用户Brian的成员资格。在从组A、B移除用户Brian 104 时,用户Brian 104可以立即地停止接收建议查询170。例如,假定用户Brian 104键入字符“B”,并且然后用户Alex 102从组A、B删除用户Brian 104。按照本公开的原理,用户Brian 104可以在打字输入“B”之后被呈现建议搜索170。然而,由于用户Alex 102从组A、B删除了用户Brian104,因而用户Brian 104一输入下一字符“i”,这导致“Bi”的输入字符串,用户Brian 104就可能不再被提供建议搜索查询170作为建议查询。因此,本公开的各方面可以提供对于一个或多个建议搜索查询的用户可访问性的立即终止。
图2是根据本公开的一个方面的可以被用于提供建议查询的过程的示例的流程图。
过程200可以在210处以创建并且维护可以与候选查询访问限制相关联的前缀索引120开始。候选查询访问限制可以基于例如组访问权限限制对于一个或多个候选查询的访问。候选查询访问限制可以使能例如基于共享文档的内容提供建议查询的呈现的文档共享***,同时还保持每个相应共享文档的内容对于除每个相应组的特定成员之外的全部成员机密。
当自动完成引擎30从一个或多个用户以零字符输入、单字符输入或多字符输入的形式接收自动完成请求时,过程200可以在220处继续。自动完成引擎130还可以接收或者以其它方式获得与向自动完成引擎130提供自动完成请求的每个相应用户相关联的用户ID。在240 处,自动完成引擎130可以将用户ID映射到组ID。例如,自动完成引擎30可以使用一个或多个查找表以便标识与接收到的用户ID相关联的每个特定组ID。在某些实例中,特定用户ID可以与多个组ID相关联。替选地,或者另外,自动完成引擎130可以能够基于与接收到的自动完成请求相关联的元数据,直接地获得组ID。然后,自动完成引擎130可以将接收到的自动完成请求和组ID传递到前缀索引120。
过程200可以在前缀索引120接收到字典树自动完成请求和组ID 之后在240处继续。在240处前缀索引120可以针对与前缀索引120 相关联的每个前缀索引条目执行接收到的自动完成请求的实时逐输入搜索以便标识一个或多个候选查询的子集。然后,前缀索引120可以基于组ID确定与自动完成请求相关联的用户是否可以访问每个所标识的候选查询。在250处,至少部分地基于组ID,可以对已提交自动完成请求的用户可访问的候选查询的子集可以被选择作为建议查询的集合。然后,在260处,建议查询的所选择的子集可以被提供到对应的用户的浏览器和/或移动应用用于作为建议查询显示。
替选地,或者另外,然而,前缀索引120可以在搜索前缀索引120 之前基于组ID执行访问授权。这样的功能可以是有益的,因为前缀索引120变得极其大以便减少需要被搜索以便标识对应于接收到的自动完成请求的匹配前缀的前缀索引条目的数量。可以存在落在本说明书中呈现的主题的精神和范围内的其它替选。
图3 示出了可以被用于实现此处所描述的技术的计算设备300和移动计算设备350的示例。计算设备300旨在表示各种形式的数字计算机,诸如膝上型计算机、桌面型计算机、工作站、个人数字助理、服务器、刀片服务器、大型机和其它适当的计算机。移动计算设备350 旨在表示各种形式的移动计算设备,诸如桌面型计算机、膝上型计算机、平板计算机、个人数字助理、蜂窝电话、智能电话和任何其它类似计算设备。此处示出的部件、其连接和关系以及其功能旨在仅是示例并且不旨在是限制性的。
计算设备300包括处理器302、存储器304、存储设备306、连接到存储器304和多个高速扩展端口310的高速接口308以及连接到低速扩展端口314和存储设备306的低速接口312。处理器302、存储器 304、存储设备306、高速接口308、高速扩展端口310和低速接口312中的每一个使用各种总线互连,并且可以被安装在共同主板上或酌情以其它方式被互连。处理器302能够处理用于在计算设备300内执行的指令,包括被存储在存储器304中或在存储设备306上以显示用于外部输入/输出设备(诸如耦合到高速接口308的显示器316)上的图形用户接口(GUI)的图形信息的指令。在其它实施方式中,可以酌情连同多个存储器和存储器的类型使用多个处理器和/或多个总线。而且,多个计算设备可以与提供必要操作的部分的每个设备连接(例如,作为服务器组、刀片服务器组或多处理器***)。
存储器304存储在计算设备300内的信息。在一些实现中,存储器304是易失性存储器单元。在一些实现中,存储器304是非易失性存储器单元。存储器304还可以是另一形式的计算机可读介质(诸如磁盘或光盘)。
存储设备306能够为计算设备300提供海量存储。在一个实施方式中,存储设备306可以是或包含计算机可读介质,诸如软盘设备、硬盘设备、光盘设备或磁带设备、闪速存储器或其它类似固态存储设备或设备阵列,包括存储区域网络或其它配置中的设备。在其它实施方式中,存储设备306可以包括一个或多个基于云的存储设备。指令可以被存储在信息载体中。当由一个或多个处理设备(例如,处理器 302)执行时,指令执行一个或多个方法(诸如上文所描述的那些方法)。指令还可以由一个或多个存储设备(诸如计算机或机器可读介质(例如,存储器304、存储设备306或处理器302上的存储器))存储。
高速接口308管理用于计算设备300的带宽密集的操作,而低速接口312管理较低带宽密集的操作。功能的这样的分配仅是示例。在一些实施方式中,高速接口308被耦合到存储器304、显示器316(例如,通过图形处理器或加速器)和可以接受各种扩展卡的高速扩展端口310。在实施方式中,低速度接口312被耦合到存储设备306和低速度扩展端口314。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口314可以被耦合到一个或多个输入/输出设备(诸如键盘、指示设备或网络设备(诸如交换机或路由器)),例如,通过网络适配器。
可以以许多不同的形式实现计算设备1300,如在附图中所示。例如,其可以被实现为标准服务器320,或者多次被实现在这样的服务器组中。另外,其可以被实现在个人计算机(诸如膝上型计算机322)中。其还可以被实现为机架服务器***324的一部分。替选地,来自计算设备300的部件可以与移动计算设备(诸如移动计算设备350)中的其它部件组合。这样的设备中的每个设备可以包含计算设备300和移动计算设备350中的一个或多个,并且整个***可以由彼此通信的多个计算设备组成。
除了其它部件,移动计算设备350包括处理器352、存储器364、输入/输出设备(诸如显示器354、通信接口366和收发器368)。移动计算设备350还可以提供有存储设备(诸如微型驱动器或其它设备) 来提供附加存储装置。处理器352、存储器364、显示器354、通信接口366和收发器368中的每一个使用各种总线互连,并且部件中的若干部件可以被安装在共同主板上或酌情以其它方式互连。
处理器352能够执行移动计算设备350内的指令,包括被存储在存储器364中的指令。处理器352可以被实现为芯片的芯片集,其包括分离的和多个模拟和数字处理器。处理器352可以提供例如移动计算设备350的其它部件的协调,诸如用户接口的控制、由移动计算设备350运行的应用和移动计算设备350的无线通信。
处理器352可以通过控制接口358和耦合到显示器354的显示接口356与用户通信。显示器354可以是例如TFT LCD(薄膜晶体管液晶显示器)或OLED(有机发光二极管)显示器或其它适当的显示技术。显示接口356可以包括用于驱动显示器354来将图形和其它信息呈现给用户的适当的电路。控制接口358可以从用户接收命令并且将其转换用于提交给处理器352。另外,外部接口362可以提供与处理器352 的通信,以便使得移动计算设备350能够与其它设备近区域通信。外部接口362可以提供例如一些实施方式中的有线通信或其它实施方式中的无线通信,并且还可以使用多个接口。
存储364存储在移动计算设备350内的信息。存储器364可以被实现为以下各项中的一项或多项:计算机可读介质或媒体、易失性存储器单元或非易失性存储器单元。扩展存储器374还可以通过扩展接口372被提供并且被连接到移动计算设备350,其可以包括例如SIMM (单列存储器模块)卡接口。扩展存储器374可以为移动计算设备350 提供额外存储空间,或者还可以存储用于移动计算设备350的应用或其它信息。特别地,扩展存储器374可以包括执行或补充上文所描述的过程的指令,并且还可以包括安全信息。因此,例如,扩展存储器 374可以提供作为用于移动计算设备350的安全模块,并且可以编程有允许移动计算设备350的安全使用的指令。另外,安全应用可以连同附加信息经由SIMM卡提供(诸如以不可攻击的方式将标识信息放置在SIMM卡上)。
存储器可以包括例如闪速存储器和/或NVRAM存储器(非易失性随机存取存储器),如下文所讨论的。在一些实施方式中,指令被存储在信息载体中,使得指令当由一个或多个处理设备(例如,处理器 352)执行时执行一个或多个方法(诸如上文所描述的那些方法)。指令还可以由一个或多个存储设备(诸如一个或多个计算机或存储器器可读介质(例如,存储器364、扩展存储器374或者处理器352上的存储器))存储。在一些实施方式中,指令可以例如通过收发器368或外部接口362在传播信号中被接收。
移动计算设备350可以通过通信接口366无线地通信,其在必要的情况下可以包括数字信号处理电路。通信接口766可以提供在各种模式或协议下的通信,诸如尤其GSM语音呼叫(全球移动通信***)、 SMS(短消息服务)、EMS(增强消息服务)或MMS消息(多媒体消息服务)、CDMA(码分多址)、TDMA(时分多址)、PDC(个人数字蜂窝)、WCDMA(宽带码分多址)、CDMA2000或GPRS(通用分组无线服务)。这样的通信可以例如通过使用射频的收发器368发生。另外,短距离通信可以发生(诸如使用蓝牙、WiFi或其它这样的收发器)。另外,GPS(全球定位***)接收器模块370可以将附加导航和位置相关无线数据提供给移动计算设备350,其可以酌情由在移动计算设备350上运行的应用使用。
移动计算设备350还可以使用音频编解码器360可听见地通信,其可以从用户接收语音信息并且将其转换为可用的数字信息。音频编解码器360可以同样地生成用于用户的可听见的声音(诸如通过扬声器(例如,在移动计算设备350的电话听筒中))。这样的声音可以包括来自语音电话呼叫的声音,可以包括录音(例如,语音消息、音乐文件等)并且还可以包括由在设备350上操作的应用所生成的声音。
可以以许多不同的形式实现计算设备350,如在附图中所示。例如,其可以被实现为蜂窝电话380。其还可以被实现为智能电话382、个人数字助理、平板计算机、膝上型计算机、桌面型计算机或者其它类似移动计算设备的一部分。
可以在数字电子电路中、在有形实现的计算机软件或固件中、在计算机硬件中实现本说明书中所描述的主题、功能操作和过程的实施例,包括本说明书中所公开的结构和其结构等同物或者其中的一个或多个的组合。本说明书中所描述的主题的实施例可以被实现为一个或多个计算机程序(即,被编码在有形非暂态程序载体上用于由数据处理装置执行或者控制数据处理装置的操作的计算机程序指令的一个或多个模块)。替选地或者附加地,程序指令可以被编码在人工生成的传播信号上,例如,机器生成的电气、光学或电磁信号,其被生成以编码用于传输到适合的接收器装置用于由数据处理装置执行的信息。计算机存储介质能够是机器可读存储设备、机器可读存储基板、随机或串行访问存储器设备或它们中的一个或多个的组合。
词项“数据处理装置”涵盖用于处理数据的所有种类的装置、设备和机器,以示例的方式包括可编程处理器、计算机或多个处理器或计算机。装置能够包括专用逻辑电路(例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路))。除硬件之外,装置还能够包括创建用于讨论中的计算机程序的执行环境的代码,例如构成处理器固件、协议栈、数据库管理***、操作***、或者它们中的一个或多个的组合的代码。
计算机程序(其还可以被称为或被描述为程序、软件、软件应用、模块、软件模块、脚本或代码)可以以任何形式的编程语言书写,包括编译或者解译语言或者说明性或者程序性语言,并且其可以以任何形式部署,包括作为单独程序或者作为模块、部件、子例程或适于使用在计算环境中的其它单元。计算机程序可以但是不需要对应于文件***中的文件。程序可以被存储在保持其它程序或数据的文件(例如,被存储在标记语言文档中的一个或多个脚本)的一部分中、在专用于讨论中的程序的单个文件中或在多个协调文件(例如,存储一个或多个模块、子程序或代码的部分的文件)中。计算机程序可以被部署以在被定位在一个地点处的一个计算机上或在跨多个地点分布并且由通信网络相互连接的多个计算机上被执行。
本说明书中所描述的过程和逻辑流可以通过一个或多个可编程处理器执行,其通过对输入数据进行操作并且生成输出执行一个或多个计算机程序以执行动作。过程和逻辑流还能够通过专用逻辑电路(例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路))来执行,并且装置还能够被实现为专用逻辑电路(例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路))。
通过示例,适于计算机程序的执行的计算机包括可以基于通用微处理器或者专用微处理器或者二者,或者任何其它种类的中央处理单元。一般地,中央处理单元将从只读存储器或者随机存取存储器或者二者接收指令和数据。计算机的基本元件是用于执行或者运行指令的中央处理单元和用于存储指令和数据的一个或多个存储器设备。通常,计算机将还包括或操作性地耦合以从用于存储数据的一个或多个海量存储设备(例如,磁性、磁光盘或者光盘)接收数据、传送数据到其或者两者。然而,计算机不需要具有这样的设备。而且,计算机可以被嵌入在另一设备中(例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位***(GPS)接收器)或者便携式存储设备(例如,通用串行总线(USB)闪盘驱动器),仅举几例。
适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括通过示例半导体存储器设备(例如,EPROM、EEPROM和闪速存储器设备);磁盘(例如,内部硬盘或者可移除磁盘);磁光盘;以及CD ROM和DVD-ROM光盘。处理器和存储器能够由专用逻辑电路补充或者并入专用逻辑电路中。
为了提供与用户的交互,本说明书中所描述的主题的实施方式可以被实现在计算机上,所述计算机具有用于将信息显示给用户的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)和用户通过其可以向计算机提供输入的键盘和指示设备(例如,鼠标或轨迹球)。其它种类的设备也可以被用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或者触觉反馈;并且来自用户的输入可以以任何形式接收,包括声音、语音或者触觉输入。另外,计算机能够通过将文档发送到由用户所使用的设备并且从其接收文档与用户交互;例如,通过响应于从 web浏览器所接收到的请求,将网页发送到用户的客户端设备上的web 浏览器。
在本说明书中所描述的主题的实施例能够被实现在计算***中,其包括后端部件(例如,作为数据服务器),或者其包括中间件部件 (例如,应用服务器),或者其包括前端部件(例如,具有用户通过其能够与本说明书中所描述的主题的实施方式交互的图形用户接口或 web浏览器的客户端计算机),或者一个或多个这样的后端、中间件或前端部件的任何组合。***的部件能够以任何形式或数字数据通信例如通信网络的介质相互连接。通信网络的示例包括局域网(“LAN“) 和广域网(“WAN“)(例如,互联网)。
计算***能够包括客户端和服务器。客户端和服务器通常远离彼此并且典型地通过通信网络相互作用。客户端和服务器的关系借助于在相应的计算机上运行并且具有彼此的客户端-服务器关系的计算机程序产生。
虽然本说明书包含许多特定实施方式细节,但是这些不应当被解释为对可以要求保护的范围限制,而是可以特定于特定实施例的特征的描述。在分立的实施例的场境中在该说明书中所描述的某些特征还能够组合被实现在单个实施例中。相反地,在单个实施例中的场境中所描述的各种特征还能够分立地或者以任何适合的子组合被实现在多个实施例中。而且,尽管特征可以上文描述为在某些组合中作用并且甚至如此初始地要求保护,但是在一些情况下,可以从组合移除所要求保护的组合的一个或多个特征,并且所要求保护的组合可以涉及子组合或子组合的变型。
类似地,虽然操作以特定次序在附图中描绘,但是这不应该被理解为要求这样的操作以所示的特定次序或者以顺序次序执行,或者全部所图示的操作被执行以实现期望的结果。在某些情况下,多任务和并行处理可以是有利的。而且,上文所描述的实施例中的各种***部件的分离不应该被理解为要求所有实施例中的这样的分立,并且应该理解的是,所描述的程序部件和***可以一般地一起集成在单个软件产品或者封装到多个软件产品中。
已描述本主题的特定实施例。其它实施例在以下权利要求的范围内。例如,权利要求中所记载的动作能够以不同的次序执行并且仍然实现期望的结果。作为一个示例,附图中所描绘的处理不必要求所示的特定次序或顺序次序来实现期望的结果。在某些实施方式中,多任务和并行处理可以是有利的。可以从所描述的过程提供其它步骤或者可以移除步骤。因此,其它实现方式在以下权利要求的范围内。
Claims (18)
1.一种方法,包括:
维持包括多个前缀索引条目的前缀索引,其中,每个前缀索引条目包括前缀、标识能够访问文档中的特定文档的用户组的组标识符和从所述特定文档提取并以所述前缀开始的所述特定文档的部分,并且每个前缀索引条目将所述前缀与所述组标识符相关联,并且每个前缀索引条目将所述特定文档的所述部分与所述前缀和所述组标识符相关联;
接收与搜索域相关联的来自用户的输入;
确定与提交了所接收到的输入的用户相关联的用户标识符;
将所述用户标识符映射到与所述用户相关联的特定组标识符;
通过识别具有与所接收到的输入相对应的前缀的前缀索引条目的子集,基于所接收到的输入和所述前缀索引,获得多个候选查询建议,每个候选查询建议是所述特定文档的、针对所述前缀索引条目的子集中的前缀索引条目的部分;
基于与所述用户相关联的所述特定组标识符,选择所述候选查询建议的子集,所述选择包括:在所述子集中包括关联于与所述用户相关联的所述特定组标识符的候选查询建议,并且从所述子集中排除不关联于与所述用户相关联的所述特定组标识符的候选查询建议;以及
将所述候选查询建议的子集提供给所述用户作为建议查询。
2.根据权利要求1所述的方法,其中,与所述搜索域相关联的来自所述用户的所述输入包括零字符输入。
3.根据权利要求1所述的方法,其中,与所述搜索域相关联的来自所述用户的所述输入包括单个字符。
4.根据权利要求1所述的方法,所述方法还包括:
接收与所述搜索域相关联的来自所述用户的两个或更多个输入;以及
对于来自所述用户的每个所接收到的输入:
确定与提交了所接收到的输入的所述用户相关联的用户标识符;
将所述用户标识符映射到与所述用户相关联的特定组标识符;
基于所接收到的输入和所述前缀索引,获得一个或多个候选查询建议;
基于与所述用户相关联的所述特定组标识符,选择所述候选查询建议的子集;以及
将所述候选查询建议的子集提供给所述用户作为建议查询。
5.根据权利要求1所述的方法,其中,基于所述组标识符选择候选查询的子集包括:
确定与和所接收到的输入相对应的前缀相关联的前缀索引条目的子集;以及
对于每个前缀索引条目:
确定与所述用户相关联的所述特定组标识符是否与和所述前缀索引条目相关联的组标识符相对应;以及
响应于与所述用户相关联的所述特定组标识符与和所述前缀索引条目相关联的所述组标识符相对应的确定,选择与所述前缀索引条目相关联的所述文档的所述部分作为候选查询包括在候选查询的所述子集中。
6.根据权利要求1所述的方法,还包括:
生成与每个候选查询建议相关联并且对于每个特定组唯一的组得分;以及
基于所述组得分,对所述建议查询进行排名。
7.根据权利要求1所述的方法,
其中,所述候选查询包括一个或多个词语,
其中,所述组得分基于所述一个或多个词语在与每个相应的用户组相关联的文档中出现的次数。
8.一种***,包括:
一个或多个计算机和存储指令的一个或多个存储设备,所述指令在由所述一个或多个计算机执行时能够操作以使得所述一个或多个计算机执行操作,所述操作包括:
维持包括多个前缀索引条目的前缀索引,其中,每个前缀索引条目包括前缀、标识能够访问文档中的特定文档的用户组的组标识符和从所述特定文档提取并以所述前缀开始的所述特定文档的部分,并且每个前缀索引条目将所述前缀与所述组标识符相关联,并且每个前缀索引条目将所述特定文档的所述部分与所述前缀和所述组标识符相关联;
接收与搜索域相关联的来自用户的输入;
确定与提交了所接收到的输入的用户相关联的用户标识符;
将所述用户标识符映射到与所述用户相关联的特定组标识符;
通过识别具有与所接收到的输入相对应的前缀的前缀索引条目的子集,基于所接收到的输入和所述前缀索引,获得多个候选查询建议,每个候选查询建议是所述特定文档的、针对所述前缀索引条目的子集中的前缀索引条目的部分;
基于与所述用户相关联的所述特定组标识符,选择所述候选查询建议的子集,所述选择包括:在所述子集中包括关联于与所述用户相关联的所述特定组标识符的候选查询建议,并且从所述子集中排除不关联于与所述用户相关联的所述特定组标识符的候选查询建议;以及
将所述候选查询建议的子集提供到所述用户作为建议查询。
9.根据权利要求8所述的***,其中,与所述搜索域相关联的来自所述用户的所述输入包括零字符输入。
10.根据权利要求8所述的***,其中,与所述搜索域相关联的来自所述用户的所述输入包括单个字符。
11.根据权利要求8所述的***,还包括:
接收与所述搜索域相关联的来自所述用户的两个或更多个输入;以及
对于来自所述用户的每个所接收到的输入:
确定与提交了所接收到的输入的所述用户相关联的用户标识符;
将所述用户标识符映射到与所述用户相关联的特定组标识符;
基于所接收到的输入和所述前缀索引,获得一个或多个候选查询建议;
基于与所述用户相关联的所述特定组标识符,选择所述候选查询建议的子集;以及
将所述候选查询建议的子集提供给所述用户作为建议查询。
12.根据权利要求8所述的***,其中,基于所述组标识符选择候选查询的子集包括:
确定与和所接收到的输入相对应的前缀相关联的前缀索引条目的子集;以及
对于每个前缀索引条目:
确定与所述用户相关联的所述特定组标识符是否与和所述前缀索引条目相关联的组标识符相对应;以及
响应于与所述用户相关联的所述特定组标识符与和所述前缀索引条目相关联的所述组标识符相对应的确定,选择与所述前缀索引条目相关联的所述文档的所述部分作为候选查询包括在候选查询的所述子集中。
13.根据权利要求8所述的***,所述操作还包括:
生成与每个候选查询建议相关联并且对于每个特定组唯一的组得分;以及
基于所述组得分,对所述建议查询进行排名,
其中,所述候选查询包括一个或多个词语,
其中,所述组得分基于所述一个或多个词语在与每个相应的用户组相关联的文档中出现的次数。
14.一种存储软件的非暂态计算机可读介质,所述软件包括能够由一个或多个计算机执行的指令,所述指令在这样执行时使得所述一个或多个计算机执行操作,所述操作包括:
维持包括多个前缀索引条目的前缀索引,其中,每个前缀索引条目包括前缀、标识能够访问文档中的特定文档的用户组的组标识符和从所述特定文档提取并以所述前缀开始的所述特定文档的部分,并且每个前缀索引条目将所述前缀与所述组标识符相关联,并且每个前缀索引条目将所述特定文档的所述部分与所述前缀和所述组标识符相关联;
接收与搜索域相关联的来自用户的输入;
确定与提交了所接收到的输入的用户相关联的用户标识符;
将所述用户标识符映射到与所述用户相关联的特定组标识符;
通过识别具有与所接收到的输入相对应的前缀的前缀索引条目的子集,基于所接收到的输入和所述前缀索引,获得多个候选查询建议,每个候选查询建议是所述特定文档的、针对所述前缀索引条目的子集中的前缀索引条目的部分;
基于与所述用户相关联的所述特定组标识符,选择所述候选查询建议的子集,所述选择包括:在所述子集中包括关联于与所述用户相关联的所述特定组标识符的候选查询建议,并且从所述子集中排除不关联于与所述用户相关联的所述特定组标识符的候选查询建议;以及
将所述候选查询建议的子集提供到所述用户作为建议查询。
15.根据权利要求14所述的计算机可读介质,其中,与所述搜索域相关联的来自所述用户的所述输入包括零字符输入。
16.根据权利要求14所述的计算机可读介质,其中,与所述搜索域相关联的来自所述用户的所述输入包括单个字符。
17.根据权利要求14所述的暂态计算机可读介质,所述操作还包括:接收与所述搜索域相关联的来自所述用户的两个或更多个输入;以及
对于来自所述用户的每个所接收到的输入:
确定与提交了所接收到的输入的所述用户相关联的用户标识符;
将所述用户标识符映射到与所述用户相关联的特定组标识符;
基于所接收到的输入和所述前缀索引,获得一个或多个候选查询建议;
基于与所述用户相关联的所述特定组标识符,选择所述候选查询建议的子集;以及
将所述候选查询建议的子集提供给所述用户作为建议查询。
18.根据权利要求14所述的计算机可读介质,其中,基于所述组标识符选择候选查询的子集包括:
确定与和所接收到的输入相对应的前缀相关联的前缀索引条目的子集;以及
对于每个前缀索引条目:
确定与所述用户相关联的所述特定组标识符是否与和所述前缀索引条目相关联的组标识符相对应;以及
响应于与所述用户相关联的所述特定组标识符与和所述前缀索引条目相关联的所述组标识符相对应的确定,选择与所述前缀索引条目相关联的所述文档的所述部分作为候选查询包括在候选查询的所述子集中。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/GR2015/000066 WO2017115095A1 (en) | 2015-12-30 | 2015-12-30 | Suggestion of queries based on group association of user |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108027817A CN108027817A (zh) | 2018-05-11 |
CN108027817B true CN108027817B (zh) | 2022-05-10 |
Family
ID=55262835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580083122.4A Active CN108027817B (zh) | 2015-12-30 | 2015-12-30 | 基于用户的组关联建议查询 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10474719B2 (zh) |
EP (1) | EP3384405A1 (zh) |
CN (1) | CN108027817B (zh) |
WO (1) | WO2017115095A1 (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9134137B2 (en) | 2010-12-17 | 2015-09-15 | Microsoft Technology Licensing, Llc | Mobile search based on predicted location |
US10956503B2 (en) * | 2016-09-20 | 2021-03-23 | Salesforce.Com, Inc. | Suggesting query items based on frequent item sets |
US10698931B1 (en) * | 2016-12-07 | 2020-06-30 | Parallels International Gmbh | Input prediction for document text search |
US11573989B2 (en) * | 2017-02-24 | 2023-02-07 | Microsoft Technology Licensing, Llc | Corpus specific generative query completion assistant |
US10467292B2 (en) * | 2017-02-28 | 2019-11-05 | Salesforce.Com, Inc. | Suggesting query items based on database fields |
US10706107B2 (en) * | 2017-05-30 | 2020-07-07 | Open Text Sa Ulc | Search systems and methods utilizing search based user clustering |
EP3506279A1 (en) * | 2018-01-02 | 2019-07-03 | Koninklijke Philips N.V. | Automatic diagnosis report preparation |
US10635697B1 (en) * | 2018-03-30 | 2020-04-28 | Atlassian Pty Ltd | Automatic suggestions based on group relevance |
US10944756B2 (en) * | 2018-05-17 | 2021-03-09 | Microsoft Technology Licensing, Llc | Access control |
US11120059B2 (en) * | 2018-06-27 | 2021-09-14 | Adobe Inc. | Conversational query answering system |
US11526769B2 (en) * | 2019-03-30 | 2022-12-13 | International Business Machines Corporation | Encoding knowledge graph entries with searchable geotemporal values for evaluating transitive geotemporal proximity of entity mentions |
US10966170B1 (en) * | 2020-09-02 | 2021-03-30 | The Trade Desk, Inc. | Systems and methods for generating and querying an index associated with targeted communications |
US12032609B1 (en) * | 2022-07-13 | 2024-07-09 | Apttus Corporation | System, method, and computer program for performing semantic type-ahead suggestions for natural language database searches |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1898638A (zh) * | 2003-12-08 | 2007-01-17 | Iac搜索和媒体公司 | 概念上组织和表述信息的方法和*** |
CN101641687A (zh) * | 2007-03-19 | 2010-02-03 | 微软公司 | 使用场景相关信息来定制用户体验 |
CN104216942A (zh) * | 2013-06-03 | 2014-12-17 | 谷歌公司 | 查询建议模板 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6564213B1 (en) | 2000-04-18 | 2003-05-13 | Amazon.Com, Inc. | Search query autocompletion |
US20090006543A1 (en) * | 2001-08-20 | 2009-01-01 | Masterobjects | System and method for asynchronous retrieval of information based on incremental user input |
US7565157B1 (en) | 2005-11-18 | 2009-07-21 | A9.Com, Inc. | System and method for providing search results based on location |
US7937345B2 (en) * | 2006-07-12 | 2011-05-03 | Kofax, Inc. | Data classification methods using machine learning techniques |
US8943045B2 (en) | 2009-01-28 | 2015-01-27 | Oracle International Corporation | Mechanisms for efficient autocompletion in XML search applications |
US8732171B2 (en) * | 2010-01-28 | 2014-05-20 | Microsoft Corporation | Providing query suggestions |
US8364684B2 (en) | 2010-10-27 | 2013-01-29 | Apple Inc. | Methods for prefix indexing |
WO2012154992A2 (en) * | 2011-05-10 | 2012-11-15 | Decarta | Systems and methods for performing search and retrieval of electronic documents using a big index |
US10068022B2 (en) * | 2011-06-03 | 2018-09-04 | Google Llc | Identifying topical entities |
US9292505B1 (en) * | 2012-06-12 | 2016-03-22 | Firstrain, Inc. | Graphical user interface for recurring searches |
US9613165B2 (en) * | 2012-11-13 | 2017-04-04 | Oracle International Corporation | Autocomplete searching with security filtering and ranking |
WO2014081727A1 (en) * | 2012-11-20 | 2014-05-30 | Denninghoff Karl L | Search and navigation to specific document content |
US9244658B2 (en) * | 2013-06-04 | 2016-01-26 | Microsoft Technology Licensing, Llc | Multi-step auto-completion model for software development environments |
US20150026153A1 (en) * | 2013-07-17 | 2015-01-22 | Thoughtspot, Inc. | Search engine for information retrieval system |
US9454621B2 (en) * | 2013-12-31 | 2016-09-27 | Google Inc. | Surfacing navigational search results |
-
2015
- 2015-12-30 CN CN201580083122.4A patent/CN108027817B/zh active Active
- 2015-12-30 EP EP15828839.9A patent/EP3384405A1/en not_active Withdrawn
- 2015-12-30 WO PCT/GR2015/000066 patent/WO2017115095A1/en active Search and Examination
-
2016
- 2016-06-08 US US15/176,393 patent/US10474719B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1898638A (zh) * | 2003-12-08 | 2007-01-17 | Iac搜索和媒体公司 | 概念上组织和表述信息的方法和*** |
CN101641687A (zh) * | 2007-03-19 | 2010-02-03 | 微软公司 | 使用场景相关信息来定制用户体验 |
CN104216942A (zh) * | 2013-06-03 | 2014-12-17 | 谷歌公司 | 查询建议模板 |
Also Published As
Publication number | Publication date |
---|---|
WO2017115095A1 (en) | 2017-07-06 |
CN108027817A (zh) | 2018-05-11 |
EP3384405A1 (en) | 2018-10-10 |
US20170192991A1 (en) | 2017-07-06 |
US10474719B2 (en) | 2019-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108027817B (zh) | 基于用户的组关联建议查询 | |
US10521479B2 (en) | Evaluating semantic interpretations of a search query | |
US11514035B1 (en) | Query refinements using search data | |
US9594850B2 (en) | Method and system utilizing a personalized user model to develop a search request | |
US10127316B2 (en) | Identifying and processing recommendation requests | |
EP3089159B1 (en) | Correcting voice recognition using selective re-speak | |
KR101735024B1 (ko) | 키워드의 현지화 번역 | |
US8639679B1 (en) | Generating query suggestions | |
US10296644B2 (en) | Salient terms and entities for caption generation and presentation | |
US11487757B2 (en) | Assistive browsing using context | |
US9286357B1 (en) | Blending content in an output | |
KR101918659B1 (ko) | 가변하는 검색 질의 버티컬 액세스 | |
US9727647B1 (en) | Annotating articles | |
US20140214820A1 (en) | Method and system of creating a seach query | |
US9811592B1 (en) | Query modification based on textual resource context | |
US9514198B1 (en) | Suggesting a tag to promote a discussion topic | |
US9396235B1 (en) | Search ranking based on natural language query patterns | |
US9110943B2 (en) | Identifying an image for an entity | |
US10528564B2 (en) | Identifying teachable moments for contextual search | |
US10657165B1 (en) | Inferring membership in a group | |
US10445384B2 (en) | System and method for determining a search response to a research query | |
US20210374606A1 (en) | Method of and system for generating a training set for a machine learning algorithm (mla) | |
EP3084705A1 (en) | Annotating videos with entities based on comment summaries |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |