CN105229639B - 短词散列 - Google Patents
短词散列 Download PDFInfo
- Publication number
- CN105229639B CN105229639B CN201480026971.1A CN201480026971A CN105229639B CN 105229639 B CN105229639 B CN 105229639B CN 201480026971 A CN201480026971 A CN 201480026971A CN 105229639 B CN105229639 B CN 105229639B
- Authority
- CN
- China
- Prior art keywords
- node
- user
- binary number
- search word
- search
- 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
- 238000000034 method Methods 0.000 claims description 23
- 230000000694 effects Effects 0.000 claims description 9
- 238000004220 aggregation Methods 0.000 claims 1
- 230000002776 aggregation Effects 0.000 claims 1
- 238000009958 sewing Methods 0.000 claims 1
- 230000006855 networking Effects 0.000 description 63
- 230000000875 corresponding effect Effects 0.000 description 23
- 238000004891 communication Methods 0.000 description 18
- 238000013500 data storage Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 16
- 239000000872 buffer Substances 0.000 description 13
- 230000009471 action Effects 0.000 description 11
- 230000001419 dependent effect Effects 0.000 description 9
- 230000014509 gene expression Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000002596 correlated effect Effects 0.000 description 4
- 238000000429 assembly Methods 0.000 description 3
- 230000000712 assembly Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 229910002056 binary alloy Inorganic materials 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000001737 promoting effect Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
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/901—Indexing; Data structures therefor; Storage structures
- G06F16/9014—Indexing; Data structures therefor; Storage structures hash tables
-
- 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/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/325—Hash tables
-
- 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/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- 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/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/01—Social networking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Business, Economics & Management (AREA)
- Tourism & Hospitality (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Operations Research (AREA)
- User Interface Of Digital Computer (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
Abstract
在一个实施方式中,服务器接收搜索查询;服务器基于所接收的搜索查询确定搜索词,每个搜索词包括前缀和后缀;对于搜索词中的每一个,服务器基于每个搜索词的前缀和后缀生成第一二进制数,并且通过散列第一二进制数从数据存储中访问和检索每个搜索词的搜索结果;服务器也聚合各个搜索词的搜索结果。
Description
技术领域
本公开内容总体涉及社交网络系统。
背景技术
可包括社交网站的社交网络系统能够使其用户(诸如,个人或组织)与其交互并且通过其彼此交互。随着用户输入,社交网络系统可以在社交网络系统中创建和储存与用户相关的用户资料。用户资料可包括用户的人口统计信息、通信信道信息以及个人兴趣信息。随着用户输入,社交网络系统还可以创建和储存该用户与社交网络系统的其他用户之间的关系记录,并且为促进两个用户或多个用户之间的社交提供服务(例如,涂鸦墙(wall post)、照片共享、活动组织、发消息、游戏或广告)。
社交网络系统可以通过一个或多个网络将与其服务相关的内容或消息发送至用户的手机或其他计算设备。用户还可以在用户的手机或其他计算设备上安装软件应用程序,用于访问用户的用户资料以及社交网络系统内的其他数据。社交网络系统可生成一组个性化的内容对象以显示给用户,诸如,连接至该用户的其他用户的集合的故事的新闻馈送。
发明内容
具体实施方式描述了基于搜索词的结构为数据库编索引的方法。具体实施方式可以表示具有二进制数的搜索词以及通过散列二进制数的搜索词对搜索结果进行索引。代替使用固定长度用于二进制数表示搜索词,具体实施方式可以通过为每个搜索词确定每个搜索词的前缀和后缀,减小二进制数的长度,并且至少部分基于每个搜索词的后缀的对象类型确定表示每个搜索词的二进制数的长度。因而,具体实施方式可以用表示搜索词的长度较短的二进制数减小为搜索词编索引的散列表的大小。
附图说明
图1示出了与社交网络系统相关联的示例网络环境。
图2示出了示例性社交图谱。
图3示出了基于搜索词的结构为数据库编索引的示例性方法。
图4示出了示例计算机系统。
具体实施方式
图1示出了与社交网络系统相关联的示例网络环境100。网络环境100包括通过网络110彼此连接的用户101、客户端系统130、社交网络系统160、及第三方系统170。尽管图1示出了用户101、客户端系统130、社交网络系统160、第三方系统170以及网络110的具体布置,但是本公开考虑了用户101、客户端系统130、社交网络系统160、第三方系统170以及网络110的任何合适的布置。作为实例并非限制性方式,客户端系统130、社交网络系统160以及第三方系统170中的两个或更多可绕开网络110直接彼此连接。作为另一实例,客户端系统130、社交网络系统160以及第三方系统170中的两个或更多可物理地或逻辑地整体或部分共同位于同一位置。此外,尽管图1示出了用户101、客户端系统130、社交网络系统160、第三方系统170以及网络110的具体数量,但是本公开考虑用户101、客户端系统130、社交网络系统160、第三方系统170以及网络110的任何合适的数量。作为实例并非限制性方式,网络环境100可包括多个用户101、客户端系统130、社交网络系统160、第三方系统170以及网络110。
在具体实施方式中,用户101可以是与社交网络系统160或通过社交网络系统160交互或者通信的个体(个人用户)、实体(例如,企业、商家或第三方应用)或者(例如,个体的或者实体的)群体。在具体实施方式中,社交网络系统160可以是承载在线社交网络的网络可寻址计算机系统。社交网络系统160可生成、存储、接收、以及发送社交网络数据,例如,用户资料数据、概念资料数据、社交图谱信息、或者与在线社交网络有关的其他合适数据。社交网络系统160可由网络环境100的其他组件直接或者经由网络110访问。在具体实施方式中,社交网络系统160可包括授权服务器(或其他合适的组件),其允许用户101选择参加还是退出使他们的动作被社交网络系统160记录或者与其他系统(例如,第三方系统170)共享,诸如,通过设定适当的隐私设置。用户的隐私设置可以确定与用户相关的什么信息可被记录,可以如何记录与用户相关的信息,何时可以记录与用户相关的信息,谁可以记录与用户相关的信息,与用户相关的信息可以与谁共享,以及记录或分享与用户相关的信息的目的是什么。在适当的情况下,认证服务器可以用于通过嵌段、数据散列、匿名化、或其他适用技术强制执行社交网络系统30的用户的一个或多个的隐私设置。在具体实施方式中,第三方系统170可以是承载网站和应用程序的网络可寻址计算机系统。第三方系统170可生成、存储、接收、以及发送第三方系统数据,例如,网页、文本、图像、视频、音频、或应用程序。第三方系统170可由网络环境100的其他组件直接或者经由网络110访问。在具体实施方式中,一个或多个用户101可使用一个或多个客户端系统130访问数据、将数据发送至社交网络系统160或第三方系统170、以及从社交网络系统160或第三方系统170接收数据。客户端系统130可直接、经由网络110或经由第三方系统访问社交网络系统160或第三方系统170。作为实例并非限制性方式,客户端系统130可通过社交网络系统160访问第三方系统170。客户端系统130可以是任意合适的计算设备,诸如,个人计算机、便携式计算机、蜂窝电话、智能电话或平板计算机。
本公开内容考虑任意合适的网络110。作为实例并非限制性方式,网络110的一个或多个部分可以包括自组织网络、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线局域网(WLAN)、广域网(WAN)、无线广域网(WWAN)、城域网(MAN)、因特网的一部分、公共交换电话网的一部分(PSTN)、蜂窝电话网络、或它们的两个或多个的组合。网络110可以包括一个或多个网络110。
链路150可将客户端系统130、社交网络系统160以及第三方系统170连接到通信网络110或者彼此连接。本公开内容考虑任意合适的链路150。在具体实施方式中,一个或多个链路150包括一个或多个有线线路(诸如,数字用户线路(DSL)或者有线电缆数据服务发送规范(DOCSIS))、无线链路(诸如,Wi-Fi或者微波存取全球互通(WiMAX))、或者光学链路(诸如,同步光学网络(SONET)或者同步数字体系(SDH))。在具体实施方式中,一个或多个链路150各自包括自组织网络、内联网、外联网、VPN、LAN、WLAN、WAN、WWAN、MAN、互联网的一部分、PSTN的一部分、以蜂窝技术为基础的网络、以卫星通信技术为基础的网络、另一个链路150或者两个或者多个此类链路150的组合。在整个网络环境100中链路150不必相同。就一方面或者多方面而言,一个或多个第一链路150可不同于一个或多个第二链路150。
图2示出了示例性社交图谱200。在具体实施方式中,社交网络系统160可在一个或多个数据存储中储存一个或多个社交图谱200。在具体实施方式中,社交图谱200可以包括多个结点-其可以包括多个用户结点202或多个概念节点204-以及连接节点的多个矢线206。为了启发式的目的,以二维直观图示出了图2中示出的示例性社交图谱200。在具体实施方式中,社交网络系统160、客户端系统130、或第三方系统170可以访问社交图谱200和合适应用的相关的社交图谱信息。例如,在数据存储(诸如,社交图谱数据库)中社交图谱200的节点和矢线可被储存为数据对象。此类数据存储可包括社交图谱200的节点或矢线的一个或多个可搜索或可查询的索引。
在具体实施方式中,用户结点202可以对应于社交网络系统160的用户。作为实例并非限制性方式,用户可以是与社交网络系统160或者通过社交网络系统160进行交互或者通信的个体(个人用户)、实体(例如,企业、公司或者第三方应用)或者(例如,个人或者实体的)群体。在具体实施方式中,当用户使用社交网络系统160注册账号,社交网络系统160可以创建对应于该用户的用户节点202,并且在一个或多个数据存储中储存用户节点202。在适当情况下,本文中所描述的用户和用户节点202可以称为注册用户以及与注册用户相关的用户节点202。此外或者作为可替换的,在适当情况下,本文中所描述的用户和用户节点202可以称为没有注册社交网络系统160的用户。在具体实施方式中,用户节点202可以与用户提供的信息或者各种系统(包括社交网络系统160)收集的信息相关。作为实例并非限制性方式,用户可以提供他或她的姓名、资料图片、联系信息、生日、性别、婚姻状况、家庭状况、工作情况、教育背景、偏好、兴趣或其他人口统计信息。在具体实施方式中,用户节点202可以与对应于与用户相关的信息的一个或多个数据对象相关。在具体实施方式中,用户节点202可对应于一个或多个网页。
在具体实施方式中,概念节点204可对应于一个概念。作为实例并非限制性方式,一个概念可对应于一个地点(诸如,电影院、餐馆、地标或城市);网站(诸如,与社交网络系统160相关的网站或者与网络应用服务器相关的第三方网站);实体(诸如,个人、公司、群体、运动队或名人);位于社交网络系统160中或外部服务器(诸如,网络应用服务器)上的资源(诸如,音频文件、视频文件、数码相片、文本文件、结构化文档或应用程序);不动产或知识产权(诸如,雕塑、绘画、电影、游戏、歌曲、想法、照片或书面著作);游戏;活动;想法或理论;另一个合适的概念;或者两个以上此类概念。概念节点204可以与用户提供的概念信息或者通过各种系统(包括社交网络系统160)收集的信息相关。作为实例并非限制性方式,概念信息可包括姓名或题目;一个或多个图像(例如,书的封面的图像);位置(例如,地址或地理位置);网站(其可以与URL相关);联系信息(例如,电话号码或电子邮件地址);其他合适的概念信息;或者此类信息的任何合适的结合。在具体实施方式中,概念节点204可以与对应于与概念节点204相关的信息的一个或多个数据对象相关。在具体实施方式中,概念节点204可对应于一个或多个网页。
在具体实施方式中,社交图谱200中的节点可以表示网页(其可被称为“资料页面”)或者由网页表示。资料页面可以由社交网络系统160承载或者可访问社交网络系统160。资料页面还可以在与第三方服务器170相关的第三方网站上承载。作为实例并非限制性方式,对应于具体的外部网页的资料页面可以是具体的外部网页,并且资料页面可以对应于具体的概念节点204。资料页面可以是所有人或者其他用户的选择子集可见的。作为实例并非限制性方式,用户节点202可具有对应的用户资料页面,其中,对应的用户可以添加内容,做出声明或者他或她自己的其他表达。作为另一个实例并非限制性方式,概念节点204可具有对应的概念资料页面,其中,一个或多个用户可添加内容,做出声明或者表达他们的想法,具体地,涉及与对应于概念节点204的概念。
在具体实施方式中,概念节点204可以表示第三方网页或者由第三方系统170承载的资源。第三方网页或资源可包括,在其他元素、内容、可选择的或其他图标、或者表示动作或活动的其他中间能实行的对象(例如,其可以在JavaScript、AJAX或PHP编码中实施)中。作为实例并非限制性方式,第三方网页可包括可选择的图标,诸如,“喜欢”、“登记”、“吃”、“推荐”或者另一个合适的动作或活动。浏览第三方网页的用户可以通过选择一个图标(例如,“吃”)来执行动作,导致客户端系统130将指示用户动作的消息发送至社交网络系统160。响应于该消息,社交网络系统160可以在对应于用户的用户节点202与对应于第三方网页或资源的概念节点204之间创建矢线(例如,“吃”矢线)并且在一个或多个数据存储中储存矢线206。
在具体实施方式中,社交图谱200中的一对节点可以通过一个或多个矢线206彼此连接。连接一对节点的矢线206可以表示该对节点之间的关系。在具体实施方式中,矢线206可包括或表示一个或多个数据对象或者对应于一对节点之间的关系的属性。作为实例并非限制性方式,第一用户可以指示第二用户是第一用户的“好友”。响应于该指示,社交网络系统160可以将“好友请求”发送至第二用户。如果第二用户确认该“好友请求”,则社交网络系统160可以在社交图谱200中创建将第一用户的用户节点202连接至第二用户的用户节点202的矢线206,并且在一个或多个数据存储中储存矢线206作为社交图谱信息。在图2的实例中,社交图谱200包括指示用户“A”与用户“B”的用户节点202之间的好友关系的矢线206,以及指示用户“C”与用户“B”的用户节点202之间的好友关系的矢线。尽管本公开内容描述或示出了具有连接具体用户节点202的具体属性的具体矢线206,但是本公开内容考虑了具有连接用户节点202的任何合适属性的任何合适的矢线206。作为实例并非限制性方式,矢线206可以表示友谊、家庭关系、公司或工作关系、爱好者关系、粉丝关系、访客关系、客户关系、上级/下属关系、相互关系、非相互关系、另一个类型合适的关系或者两个以上此类关系。此外,尽管本公开内容总体将节点描述为被连接的,但是本公开内容还将用户或概念描述为被连接的。在本文中,在适当情况下,参考连接的用户或概念可以称为对应于通过一个或多个矢线206在社交图谱200中被连接的这些用户或概念的节点。
在具体实施方式中,用户节点202与概念节点204之间的矢线206可以表示由与用户节点202相关的用户向与概念节点204相关的概念执行的具体动作或活动。作为实例并非限制性方式,如图2中所示,用户可以“喜欢”、“参加”、“播放”、“收听”、“烹饪”、“工作”或“观看”概念,其中的每个可以对应于矢线的类型或子类型。例如,对应于概念节点204的概念资料页面可包括可选择的“登记”图标(诸如,可点击的“登记”图标)或者可选择的“添加到收藏夹”图标。类似地,在用户点击这些图标之后,响应于对应于各自动作的用户的动作,社交网络系统160可以创建“收藏夹”矢线或“登记”矢线。作为另一个实例并非限制性方式,用户(用户“C”)可以使用具体的应用程序(SPOTIFY,它是在线音乐应用程序)收听具体的歌曲(“Ramble On”)。在该情况下,社交网络系统160可以在对应于用户的用户节点202与对应于歌曲和应用程序的概念节点204之间创建“收听”矢线206和“使用”矢线(如图2中所示),以指示用户听过该歌曲并且使用过该应用程序。此外,社交网络系统160可以在对应于歌曲和应用程序的概念节点204之间创建“播放”矢线206(如图2中所示),以指示通过具体的应用程序播放了具体的歌曲。在该情况下,“播放”矢线206对应于在外部音频文件(歌曲“Imagine”)上通过外部应用程序(SPOTIFY)执行的动作。尽管本公开内容描述了具有连接用户节点202与概念节点204的具体属性的具体矢线206,但是本公开内容考虑了具有连接用户节点202和概念节点204的任何合适属性的任何合适的矢线206。此外,尽管本公开内容描述了表示单一关系的用户节点202与概念节点204之间的矢线,但是本公开内容考虑了表示一个或多个关系的用户节点202与概念节点204之间的矢线。作为实例并非限制性方式,矢线206可以表示用户喜欢并且以具体的概念使用了矢线206。可替换地,另一个矢线206可以表示用户节点202与概念节点204之间(如图2中示出的用户“E”的用户节点202与“SPOTIFY”的概念节点204之间)的每个类型的关系(或者多个单一关系)。
在具体实施方式中,社交网络系统160可以在社交图谱200中的用户节点202与概念节点204之间创建矢线206。作为实例并非限制性方式,观看概念资料页面的用户(诸如,通过使用网页浏览器或通过用户的客户端系统130承载的专用应用程序)可以指示他或她通过点击或选择“喜欢”图标喜欢通过概念节点204表示的概念,这可使用户的客户端系统130将指示用户对与概念资料页面相关的概念的喜欢的消息发送至社交网络系统160。响应于该消息,社交网络系统160可以在与用户相关的用户节点202与概念节点204之间创建矢线206,如所示出的,通过用户与概念节点204之间的“喜欢”矢线206。在具体实施方式中,社交网络系统160可在一个或多个数据存储中储存矢线206。在具体实施方式中,响应于具体的用户动作矢线206可以自动地由社交网络系统160形成。作为实例并非限制性方式,如果第一用户上传图片,观看电影或者听歌,则矢线206可在对应于第一用户的用户节点202与对应于这些概念的概念节点204之间形成。尽管本公开内容描述了以具体的方式形成具体矢线206,但是本公开内容考虑了以任何合适的方式形成任何合适的矢线206。
另外,任何两个节点之间的分离度被定义为从一个节点到另一节点跨越社交图谱所需的最小跳数(或者矢线)。两个节点之间的分离度可被视为由社交图谱中的两个节点表示的用户或者概念之间的关联性的测量。
如前所述,社交网络系统可以在一个或多个数据存储中存储社交图谱信息和涉及信息的其他社交网络系统。在具体实施方式中,可根据具体数据结构组织数据存储中存储的信息。每个数据存储可以是相关的、直列的、相关的或者其他适当的数据库。具体实施方式考虑任何合适类型的数据库。此外,可通过独立服务器或独立物理位置保持每个数据存储(或分区)。具体实施方式可提供能够使社交网络系统、客户端系统或者第三方系统管理、检索、修改、添加或者删除存储在数据存储中的信息的接口。
提交至数据库的搜索查询可以包括一个或多个关键字短语,诸如“Pi”、“唐顿庄园”、“NBA全明星赛”、或“世界上最高的山”。数据库可以通过散列关键字短语为关键字短语的搜索结果编索引。例如,数据库的索引服务器可以通过将散列函数应用到所得到的散列值的关键字短语来存储、修改、检索、或删除关键字短语的搜索结果,并且在与得到的散列值对应的位置处的数据库中存储或查寻搜索结果。即,数据库的搜索索引可以包括与散列函数相关的散列表。然而,当关键字短语长度很长时,仅散列关键字短语就可能产生数据库的非常大的搜索索引,并且在访问存储在数据库中的数据中会引起较高的成本或较低的性能。具体实施方式描述了减小搜索索引的大小的方法。具体实施方式可以确定数据库的搜索查询的一个或多个搜索词,并且基于搜索词的结构为数据库编索引。
图3示出了基于搜索词的结构为数据库编索引的示例性方法300。可以由社交网络系统或者包括一个或多个数据存储或数据库的任何合适的系统的一个或多个计算设备(例如,服务器)实现300的方法。该方法300可从步骤310开始。在具体实施方式中,在步骤310中,社交网络系统的一个或多个计算设备可以接收搜索查询。例如,接收的搜索查询可以包括用户通过社交网络系统承载的PHP(超文本预处理器)处理提交的结构化或基本非结构化的文本串。例如,所接收的搜索查询可以是“谁是John和Bob共同的朋友?”、“谁在该照片中加标签?”、“寻找San Carlos,CA附近有意思的地方”、“我的朋友中谁在该餐馆登记?”、或者“谁喜欢该张贴?”。
在具体实施方式中,在步骤320中,社交网络系统的一个或多个计算设备可以基于所接收的搜索查询确定一个或多个搜索词。在具体实施方式中,每个搜索词可以包括前缀和后缀。
例如,对于所接收的搜索查询“谁是John和Bob共同的朋友?”,计算设备可以确定“John”的用户标识符<177>以及“Bob”的用户标识符<213>。计算设备可以确定所接收的搜索查询可由两个搜索词“朋友:<177>”和“朋友:<213>”组成。每一个确定的搜索词包括用户标识符(<177>或<213>)中的前缀“朋友:”(即,…的朋友)以及后缀。每个搜索词的预期搜索结果可以包括用户标识符的列表(例如,是用户<177>的朋友的用户的列表)。计算设备可以通过将与AND算子应用于两个确定的搜索词而确定所接收的搜索查询的结果:(AND朋友:<177>朋友:<213>)。
例如,计算设备可以确定所接收的搜索查询“谁在这张照片中加标签”可由具有“这张照片”的照片标识符<65199>中的前缀“tagged_in_photo”(即,在照片中加标签的用户)和后缀的搜索词“tagged_in_photo:<65199>”组成。搜索词的预期结果可以包括与在照片<65199>中加标签的用户对应的用户标识符的列表。
例如,计算设备可以确定所接收的搜索查询“寻找San Carlos,CA附近有意思的地方”可由搜索词“places_in:<752039>”组成,该搜索词具有前缀“places_in”(地图瓦片(map tile)中的位置),以及与“San Carlos,CA”对应的地图瓦片标识符<752039>。在此,地图可以表示地理区域,诸如,世界、世界的一部分、或任何合适的区域。地图可被分成地图瓦片,其中,每个地图瓦片表示地图的特定地理区域。例如,与San Carlos,CA对应的地图瓦片<752039>可以包括具有地理坐标中的四角(37.52,-122.24)、(37.52,-122.30)、(37.47,-122.30)、以及(37.47,-122.24)的矩形区域。搜索词“places_in:<752039>”的预期结果可以包括地点(或任何合适的概念)的标识符的列表,其中,每个地点(或概念)在地图瓦片<752039>的矩形区域内具有位置。
在具体实施方式中,在步骤330中,为每个搜索词,计算设备可以基于每个搜索词的前缀和后缀生成第一二进制数。计算设备可以基于前缀生成第二二进制数并且基于后缀的对象类型生成第三二进制数。计算设备可以通过连结第二二进制数和第三二进制数生成第一二进制数。
计算设备可以首先基于每个搜索词的前缀生成每个搜索词的第二二进制数。例如,计算设备可以将搜索词的前缀映射至具有10位的长度的第二二进制数。第二二进制数的10位的长度可以使第二二进制数表示高达大约1,000(210)个不同的前缀,诸如,先前描述的“朋友:”、“tagged_in_photo:”以及“places_in:”。前缀的其他的实例可以包括“posts_of:”(用户的张贴)、“commenters_of”(关于张贴进行评论的用户)、以及“likers_of”(喜欢张贴、照片、或任何合适的概念的用户)。具体实施方式考虑搜索词的任何合适的前缀。计算设备可以访问存储在社交网络系统的数据存储中的映射表并且查寻表示特定前缀的特定10位的二进制数的映射表。
计算设备可以基于每个搜索词的后缀或每个搜索词的后缀对象类型生成每个搜索词的第三二进制数。计算设备可以基于每个搜索词的后缀的对象类型确定第三二进制数的长度。计算设备可以确定特定对象类型的第三二进制数的长度因此长度足够大以唯一表示存储在社交网络系统中的特定对象类型的所有合理的对象。第三二进制数的长度也可足够大到两倍以上以唯一表示特定对象类型的所有的合理对象以避免与散列函数相关联的冲突。在此,冲突可以表示提供给散列函数的两个不同的输入值(散列关键字)可能产生相同结果(散列值)。冲突不具有索引期望的一对一映射特性。例如,计算设备可以生成用户标识符的后缀的37位二进制数。即,用户标识符可以转换成37位的二进制数。37位二进制数足以唯一表示社交网络系统的215个不同的用户。对于另一实例,计算设备可以生成概念标识符(例如,地点的标识符)的后缀的64位二进制数。即,概念标识符可以转换成64位的二进制数。64位二进制数足以唯一表示社交网络系统的230个不同的概念节点。对于又一实例,计算设备可以生成地图瓦片标识符的后缀的32位二进制数。即,地图瓦片标识符可以转换成32位的二进制数。32位二进制数足以唯一表示存储在社交网络系统中的地图的215个不同的地图瓦片。具体实施方式考虑了任何合适的后缀对象类型。例如但不限于,后缀对象类型可对应于用户、地点、概念、地图瓦片、张贴、照片、地点、应用程序、事件、网页、或视频。
在具体实施方式中,计算设备可以通过连结第二二进制数和第三二进制数生成第一二进制数。例如,搜索词“朋友:<177>”的第一二进制数可以包括通过表示后缀<177>的37位(第三)二进制数连结的表示前缀“朋友:”的10位(第二)二进制数。因此,搜索词“朋友:<177>”的第一二进制数具有47位的长度。对于另一实例,搜索词“tagged_in_photo:<65199>”的第一二进制数可以包括通过表示后缀<65199>的64位(第三)二进制数连结的表示前缀“tagged_in_photo:”的10位(第二)二进制数。因此,搜索词“tagged_in_photo:<65199>”的第一二进制数具有74位的长度。对于又一实例,搜索词“places_in:<752039>”的第一二进制数可以包括通过表示后缀<752039>的32位(第三)二进制数连结的表示前缀“places_in:”的10位(第二)二进制数。因此,搜索词“places_in:<752039>”的第一二进制数具有42位的长度。
在具体实施方式中,在步骤340中,对于每个搜索词,计算设备可以通过散列第一二进制数从一个或多个数据存储访问和检索每个搜索词的一个或多个搜索结果。计算设备可以用合适的散列函数散列第一二进制数。即,数据存储可以用与散列函数相关联的一个或多个散列表为与每个搜索词对应的第一二进制数的搜索结果编索引。在一些实施方式中,在用合适的散列函数散列第一二进制数之前,计算设备可以将可逆变换功能应用到第一二进制数。在这种情况下,第一二进制数可具有“起伏”特性因为大多数“1”位在第一二进制数中的位的某个范围内。可逆变换功能可以将起伏的第一二进制数变换成更均匀分布的形式(例如,“1”位更均匀分布在第一二进制数的所有位中),因而避免与散列函数相关联的合理的冲突。在此,可逆函数F具有x=F-1(F(x))的行为,其中,F-1是F的倒数。
在具体实施方式中,数据存储可以保留多个散列表。每个散列表可以为特定后缀对象类型的搜索词的搜索结果编索引。即,数据存储可以基于搜索词的后缀的对象类型为搜索结果编索引。例如,数据存储可以保留具有用户对象类型的后缀的搜索词(例如,“朋友:<177>”,其中,后缀<177>是用户标识符)的散列表。数据存储可以维护具有概念对象类型的后缀的搜索词(例如,“tagged_in_photo:<65199>”,其中,<65199>是概念标识符)的另一散列表。数据存储可以维护具有地图瓦片对象类型的后缀的搜索词(例如,“places_in:<752039>”,其中,<752039>是地图瓦片标识符)的又一散列表。此外,每个散列表可以包括可以为搜索词的前缀编索引的一个或多个前缀映射。在一个实施方式中,每一个数据存储可被配置为储存单个对象类型的对象。例如,数据存储可被配置为储存用户对象(和与每个存储的用户对象相关联的信息)。另一数据存储可被配置为储存概念对象(和与每个存储的概念对象相关联的信息)。第三数据存储可被配置为储存地图瓦片对象(和与每个存储的地图瓦片对象相关联的信息)。每一个数据存储可以包括上述一个或多个散列表。
与之相比,在没有基于上述每个搜索词的后缀对象类型使用不同长度的二进制数来表示搜索词的情况下,长的二进制数可以用于表示任意后缀(或缺少后缀)对象类型的任意搜索词。例如,96位的二进制数可用于唯一表示社交网络系统的任意搜索词。然而,用于为96位的二进制数表示的搜索词编索引的相应的单个散列表会比用于用先前描述的较短的二进制数为搜索词编索引的散列表大很多。即,具体实施方式可以确定搜索词的前缀和后缀中的搜索词的结构,并且基于后缀的对象类型表示具有较短的二进制数的搜索词,因而减小了散列表的大小。例如,具体实施方式可以为社交网络系统将散列表的总大小减小20%以上。
在一个实施方式中,计算设备可以生成第一二进制数而不生成之前所描述的第二二进制数和第三二进制数。例如,如果计算设备不能确定搜索词的前缀或后缀,计算设备可以生成表示搜索词的64位的二进制数。计算设备可以通过散列64位的二进制数访问数据存储并且从数据存储检索搜索词的一个或多个搜索结果。
在具体实施方式中,在步骤350中,计算设备可以聚合各个搜索词的搜索结果。例如,对于先前所描述的所接收的搜索查询“谁是John和Bob共同的朋友”,计算设备可以从搜索词“朋友:<177>”的数据存储中检索第一组结果(例如,用户<1>、<3>、<11>)。计算设备可以从搜索词“朋友:<213>”的数据存储检索第二组结果(例如,用户<1>、<11>、<17>、<28>)。计算设备可以通过将与操作应用于第一组和第二组结果聚合搜索结果,从而产生聚合搜索结果(例如,用户<1>、<11>)。
在适当情况下,具体实施方式可重复图3中的方法的一个或多个步骤。尽管本公开内容描述并示出了图3的方法的具体步骤以具体顺序发生,但是本公开内容考虑图3的方法的任何合适的步骤以任何合适的顺序发生。此外,虽然本公开内容描述并且示出了执行图3中的方法的具体步骤的具体部件、装置或者系统,但是本公开内容考虑了执行图3中的方法的任何合适步骤的任何合适部件、装置或者系统的任何合适的组合。
图4示出了示例性计算机系统400。在具体实施方式中,一个或多个计算机系统400执行本文描述或示出的一种或多种方法的一个或多个步骤。在具体实施方式中,一个或多个计算机系统400提供本文描述或示出的功能。在具体实施方式中,运行在一个或多个计算机系统400上的软件执行本文描述或示出的一种或多种方法的一个或多个步骤或者提供本文描述或示出的功能。具体实施方式包括一个或多个计算机系统400的一个或多个部分。在本文中,在适当情况下,参考计算机系统可包含计算设备。此外,在适当情况下,参考计算机系统可包含一个或多个计算机系统。
本公开内容考虑了任何合适数量的计算机系统400。本公开内容考虑了采用任何合适的物理形式的计算机系统400。作为实例并非限制性方式,计算机系统400可以是嵌入式计算机系统、片上系统(SOC)、单板计算机系统(SBC)(诸如,电脑模组(COM)或系统模组(SOM))、台式计算机系统、便携式或笔记本计算机系统、互动平台、主机、计算机系统网格、移动手机、个人数字助理(PDA)、服务器、平板计算机系统、或者这些的两个或更多的组合。在适当情况下,计算机系统400可包括一个或者多个计算机系统400、为整体式或者分布式、跨多个地点、跨多台机器、跨多个数据中心或者驻留在可包括一个或者多个网络中的一个或者多个云部件的云中。在适当情况下,一个或者多个计算机系统400可执行本文所描述或者示出的一种或者多种方法的一个或者多个步骤,而基本没有空间和时间限制。作为实例并非限制性方式,一个或者多个计算机系统400可实时地或以批量模式执行本文所描述或者示出的一种或者多种方法的一个或者多个步骤。在适当情况下,一个或者多个计算机系统400可在不同时间或者在不同地点执行本文所描述或者示出的一种或者多种方法的一个或者多个步骤。
在具体实施方式中,计算机系统400包括处理器402、存储器404、存储介质406、输入/输出(I/O)接口408、通信接口410和总线412。尽管本公开内容描述和示出了具有按照特定布置的特定数量的特定组件的特定计算机系统,但是本公开内容考虑了具有按照任何合适布置的任何合适数量的任何合适组件的任何合适的计算机系统。
在具体实施方式中,处理器402包括用于执行诸如装配计算机程序的指令的硬件。作为实例并非限制性方式,为了执行指令,处理器402可以从内部寄存器、内部缓存、存储器404或者存储介质406检索(或者取来)指令;解码和执行它们;然后将一个或多个结果写入内部寄存器、内部缓存、存储器404或者存储介质406。在具体实施方式中,处理器402可包括用于数据、指令或地址的一个或多个内部缓存。在适当情况下,本公开内容考虑了包括任意合适数量的任意合适的内部缓存的处理器402。作为实例并非限制性方式,处理器402可包括一个或多个指令缓存、一个或多个数据缓存以及一个或多个转换后备缓冲器(TLB)。指令缓存中的指令可以是存储器404或者存储介质406中的指令的副本,并且指令缓存可加速处理器402检索那些指令。在数据缓存中的数据可以是在用于在处理器402中执行指令操作的存储器404或存储介质406中数据的副本;用于由在处理器402中执行的后续指令访问或用于写入存储器404或存储介质406的在处理器402中执行的先前指令的结果;或者其他合适的数据。数据缓存可加速处理器402读取或者写入操作。TLB可以加速处理器402的虚拟地址转换。在具体实施方式中,处理器402可包括用于数据、指令或地址的一个或多个内部寄存器。在适当情况下,本公开内容考虑了包括任何合适数量的任何合适的内部寄存器的处理器402。在适当情况下,处理器402可包括一个或多个算术逻辑单元(ALU);多核处理器;或者包括一个或多个处理器402。尽管本公开内容描述和说明了特定的处理器,但是本公开内容考虑了任何合适的处理器。
在具体实施方式中,存储器404包括用于储存处理器402执行的指令或处理器402操作的数据的主存储器。作为实例并非限制性方式,计算机系统400可将指令从存储介质406或另一源(诸如,另一计算机系统400)加载至存储器404。然后,处理器402可将指令从存储器404加载至内部寄存器或内部缓存。为了执行该指令,处理器402可从内部寄存器或者内部缓存检索指令并且将它们进行解码。在指令的执行之中或之后,处理器402可将一个或多个结果(其可以是中间结果或最终结果)写入到内部寄存器或内部缓存。然后,处理器402可将那些结果中的一个或多个写入到存储器404。在具体实施方式中,处理器402仅在一个或多个内部寄存器或内部缓存或存储器404(与存储介质406相反的位置或其他位置)中执行指令,并且仅在一个或多个内部寄存器或内部缓存或存储器404(与存储介质406相反的位置或其他位置)中操作数据。一个或多个存储器总线(每个可包括地址总线和数据总线)可将处理器402耦接至存储器404。如下所述,总线412可包括一个或多个存储器总线。在具体实施方式中,一个或多个存储器管理单元(MMU)位于处理器402与存储器404之间,并且促进由处理器402要求的对存储器404的访问。在具体实施方式中,存储器404包括随机存取存储器(RAM)。在适当情况下,该RAM可以是易失性存储器。在适当情况下,该RAM可以是动态RAM(DRAM)或静态RAM(SRAM)。此外,在适当情况下,该RAM可以是单端口或多端口的RAM。本公开内容考虑了任何合适的RAM。在适当情况下,存储器404可包括一个或多个存储器404。尽管本公开内容描述和说明了具体的存储器,但是本公开内容考虑了任何合适的存储器。
在具体实施方式中,存储介质406包括用于数据或指令的大容量存储器。作为实例并非限制性方式,存储介质406可包括硬盘驱动(HDD)、软盘驱动、闪存、光盘、磁光盘、磁带、或通用串行总线(USB)驱动或者它们的两种或多种的组合。在适当情况下,存储介质406可包括可移除的或者不可移除的(或固定的)介质。在适当情况下,存储介质406可以是计算机系统400的内部或外部。在具体实施方式中,存储介质406是非易失性的固态存储器。在具体实施方式中,存储介质406包括只读存储器(ROM)。在适当情况下,该ROM可以是掩码编程ROM、可编程ROM(PROM)、可擦PROM(EPROM)、电可擦PROM(EEPROM)、电可改写ROM(EAROM)或闪存或这些的两个或更多的组合。本公开内容考虑了采用任何合适物理形式的大容量存储介质406。在适当情况下,存储介质406可包括促进处理器402与存储介质406之间通信的一个或多存储器控制单元。在适当情况下,存储介质406可包括一个或多个存储介质406。尽管本公开内容描述和说明了具体的存储器,但是本公开内容考虑了任何合适的存储器。
在具体实施方式中,I/O接口408包括提供用于在计算机系统400与一个或者多个I/O设备之间进行通信的一个或者多个接口的硬件、软件、或者硬件和软件。在适当情况下,计算机系统400可包括一个或者多个这种I/O设备。这些I/O设备的一个或多个可使人员和计算机系统400之间能够通信。作为实例并非限制性方式,I/O设备可包括键盘、按键、麦克风、监控器、鼠标、打印机、扫描仪、扬声器、照相机、触控笔、平板、触摸屏、追踪球、摄影机、其他合适的I/O设备或它们中两个或更多的组合。I/O设备可包括一个或多个传感器。本公开内容考虑了任何合适的I/O设备和它们的任何合适的I/O接口408。在适当情况下,I/O接口408可包括使处理器402能够驱动这些I/O设备中的一个或多个的一个或多个设备或软件驱动器。在适当情况下,I/O接口408可包括一个或多个I/O接口408。尽管本公开内容描述和示出了具体的I/O接口,但是本公开内容考虑了任何合适的I/O接口。
在具体实施方式中,通信接口410包括提供用于在计算机系统400与一个或者多个其他计算机系统400或者一个或多个网络之间进行通信(诸如,基于数据包的通信)的一个或者多个接口的硬件、软件、或者硬件和软件。作为实例并非限制性方式,通信接口410可包括用于与以太网或其他基于有线网络通信的网络接口控制器(NIC)或网络适配器,或用于与无线网络(诸如WI-FI网络)通信的无线NIC(WNIC)或无线适配器。本公开内容考虑了任何合适的网络和它的任何合适的通信接口410。作为实例而非限制性方式,计算机系统400可与自组织网络、个人区域网(PAN)、局域网(LAN)、广域网(WAN)、城域网(MAN)或互联网的一个或多个部分或它们的两个或更多的组合通信。一个或多个这些网络的一个或多个部分可以是有线的或无线的。作为示例,计算机系统400可与无线PAN(WPAN)(诸如,BLUETOOTH WPAN)、WI-FI网络、WI-MAX网络、蜂窝电话网络(诸如,全球移动通信系统(GSM)网络)或其他合适的无线网络或者这些的两个以上的组合通信。在适当情况下,计算机系统400可包括用于这些网络中的任何一个的任何合适的通信接口410。在适当情况下,通信接口410可包括一个或多个通信接口410。尽管本公开描述和示出了具体的通信接口,但是本公开内容考虑了任何合适的通信接口。
在具体实施方式中,总线412包括将计算机系统400的部件彼此耦接的硬件、软件或者硬件和软件。作为实例并非限制性方式,总线412可包括图形加速端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、HYPERTRANSPORT(HT)互连、工业标准架构(ISA)总线、INFINIBAND互连、低接脚数(LPC)总线、存储器总线、微通道结构(MCA)总线、外部设备互连(PCI)总线、PCI快递(PCIe)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者这些中的两个以上的结合。在适当情况下,总线412可包括一个或多个总线412。尽管本公开内容描述和示出了具体的总线,然而本公开内容考虑了任何合适的总线或者互连。
在本文中,在适当情况下,计算机可读非暂时性存储媒体或媒介可包括一个或多个以半导体为基础的或其他集成电路(IC)(诸如,场可编程门阵列(FPGA)或应用专用IC(ASIC))、硬盘驱动器(HDD)、混合硬盘(HHD)、光盘、光盘驱动器(ODD)、磁光盘、磁光盘驱动器、软盘、软磁盘(FDD)、磁带、固态驱动器(SSD)、RAM驱动器、SECURE DIGITAL卡或驱动器、任何其他合适的计算机可读非暂时性存储媒体或这些中的两个以上任何合适的组合。在适当情况下,计算机可读非暂时性存储媒体可以是易失的、非易失的,或易失和非易失的结合。
在本文中,除非另有明确表示或通过上下文另有表示,否则“或”是包括性的而不是排除性的。因此,在本文中,除非另有明确表示或通过上下文的其他表示,否则“A或B”意味着“A、B、或这两者”。此外,除非另有其他明确表示或通过上下文的其他表示,否则“和”是两者结合及多个。因此,在本文中,除非另有其他明确表示或通过上下文的其他表示,否则“A和B”意味着“结合地或分别地A和B”。
本公开内容的范围包括本领域技术人员应当理解的对本文中描述或示出的示例性实施方式的所有改变、替代、变化、变更以及变形。本公开内容的范围并不限于本文中描述或示出的示例性实施方式。此外,尽管本公开内容将本文中各个实施方式描述并且示出为包括具体部件、元件、功能、操作或步骤,但是本领域普通技术人员应当理解的是,这些实施方式中的任何一个可包括本文中任何地方描述或示出的任何部件、元件、功能、操作或步骤的任何组合或排列。此外,所附权利要求中参考的适配于、布置为、能够、配置为、使能够做、可操作为或有效的执行具体功能的设备或系统或者设备或系统的部件包括设备、系统、部件,不管是否它或者具体功能被激活、接通或解锁,只要该设备、系统或部件被如此适配、布置、能够、配置、能够做、可操作或有效的。
Claims (10)
1.一种用于搜索在线社交网络的方法,包括:
由一个或多个计算机设备访问社交图谱,所述社交图谱包括多个节点和连接所述节点的多条矢线,两个所述节点之间的所述矢线中的每条矢线表示所述两个节点之间的单一的分离度,所述节点包括:
第一节点,对应于与在线社交网络相关联的第一用户;以及
多个第二节点,每个所述第二节点对应于与所述在线社交网络相关联的对象,每个对象有具体对象类型;
由一个或多个计算设备从所述第一用户接收搜索查询;
由一个或多个计算设备基于所接收的搜索查询确定一个或多个搜索词,每个搜索词包括前缀和后缀,其中,每个前缀对应于所述社交图谱的矢线类型和对象类型,并且其中,每个后缀对应于所述多个节点中的具体节点;
为所述搜索词中的每一个,通过一个或多个计算设备:
基于每个所述搜索词的前缀和后缀生成第一二进制数;并且
通过散列所述第一二进制数从一个或多个数据存储中访问和检索每个所述搜索词的一个或多个搜索结果,其中,每个搜索结果对应于所述多个第二节点中的节点;以及
由一个或多个计算设备聚合各个所述搜索词的搜索结果。
2.根据权利要求1所述的方法,其中,基于每个所述搜索词的前缀和后缀生成第一二进制数还包括由一个或多个计算设备:
基于所述前缀生成第二二进制数;
基于所述对象的所述具体对象类型生成第三二进制数,所述对象对应于多个节点中对应于所述后缀的具体节点;以及
通过连结所述第二二进制数和第三二进制数生成所述第一二进制数。
3.根据权利要求2的所述方法,其中,所述第三二进制数的长度是基于所述后缀的对象类型确定的。
4.根据权利要求1所述的方法,其中,所述对象对应于用户、概念、或地图瓦片。
5.根据权利要求1所述的方法,其中,与所述在线社交网络相关的社交网络系统包括所述计算设备和所述数据存储。
6.一种用于搜索在线社交网络的系统,包括:
一个或多个处理器;以及
非暂时性存储器,耦接至所述处理器且所述存储器包括能由所述处理器执行的指令,所述处理器在执行所述指令时能操作以:
访问社交图谱,所述社交图谱包括多个节点和连接所述节点的多条矢线,两个所述节点之间的所述矢线中的每条矢线表示所述两个节点之间的单一的分离度,所述节点包括:
第一节点,对应于与在线社交网络相关联的第一用户;以及
多个第二节点,每个所述第二节点对应于与所述在线社交网络相关联的对象,每个对象有具体对象类型;
从所述第一用户接收搜索查询;
基于所接收的搜索查询确定一个或多个搜索词,每个搜索词包括前缀和后缀,其中,每个前缀对应于所述社交图谱的矢线类型和对象类型,并且其中,每个后缀对应于所述多个节点中的具体节点;
为所述搜索词中的每一个:
基于每个所述搜索词的前缀和后缀生成第一二进制数;以及
通过散列所述第一二进制数从一个或多个数据存储中访问和检索每个所述搜索词的一个或多个搜索结果,其中,每个搜索结果对应于所述多个第二节点中的节点;以及
聚合各个所述搜索词的搜索结果。
7.根据权利要求6所述的系统,其中,为了基于每个所述搜索词的前缀和后缀生成第一二进制数进一步包括,所述处理器在执行所述指令时能操作以:
基于所述前缀生成第二二进制数;
基于所述对象的所述具体对象类型生成第三二进制数,所述对象对应于多个节点中对应于所述后缀的具体节点;以及
通过连结所述第二二进制数和第三二进制数生成所述第一二进制数。
8.根据权利要求7所述的系统,其中,所述第三二进制数的长度是基于所述后缀的对象类型确定的。
9.根据权利要求6所述的系统,其中,所述对象对应于用户、概念、或地图瓦片。
10.根据权利要求6所述的系统,其中,与所述在线社交网络相关的社交网络系统包括计算设备和所述数据存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610943136.5A CN107103017A (zh) | 2013-03-13 | 2014-03-10 | 通信方法和通信系统 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/799,772 | 2013-03-13 | ||
US13/799,772 US9171063B2 (en) | 2013-03-13 | 2013-03-13 | Short-term hashes |
PCT/US2014/022445 WO2014164443A1 (en) | 2013-03-13 | 2014-03-10 | Short-term hashes |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610943136.5A Division CN107103017A (zh) | 2013-03-13 | 2014-03-10 | 通信方法和通信系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105229639A CN105229639A (zh) | 2016-01-06 |
CN105229639B true CN105229639B (zh) | 2016-09-21 |
Family
ID=51533074
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610943136.5A Pending CN107103017A (zh) | 2013-03-13 | 2014-03-10 | 通信方法和通信系统 |
CN201480026971.1A Active CN105229639B (zh) | 2013-03-13 | 2014-03-10 | 短词散列 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610943136.5A Pending CN107103017A (zh) | 2013-03-13 | 2014-03-10 | 通信方法和通信系统 |
Country Status (11)
Country | Link |
---|---|
US (2) | US9171063B2 (zh) |
EP (2) | EP3270302B1 (zh) |
JP (2) | JP5941239B1 (zh) |
KR (2) | KR101962715B1 (zh) |
CN (2) | CN107103017A (zh) |
AU (2) | AU2014249325B2 (zh) |
BR (1) | BR112015023045A8 (zh) |
CA (2) | CA2903455C (zh) |
IL (2) | IL241162A (zh) |
MX (1) | MX348259B (zh) |
WO (1) | WO2014164443A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9336312B2 (en) * | 2013-04-08 | 2016-05-10 | Facebook, Inc. | Vertical-based query optionalizing |
US9330104B2 (en) * | 2014-04-30 | 2016-05-03 | International Business Machines Corporation | Indexing and searching heterogenous data entities |
US10552413B2 (en) * | 2016-05-09 | 2020-02-04 | Sap Se | Database workload capture and replay |
US10298702B2 (en) | 2016-07-05 | 2019-05-21 | Sap Se | Parallelized replay of captured database workload |
US10592528B2 (en) | 2017-02-27 | 2020-03-17 | Sap Se | Workload capture and replay for replicated database systems |
KR102535828B1 (ko) * | 2018-02-06 | 2023-05-23 | 삼성전자주식회사 | 메모리 컨트롤러 및 상기 메모리 컨트롤러의 동작 방법 |
US10698892B2 (en) | 2018-04-10 | 2020-06-30 | Sap Se | Order-independent multi-record hash generation and data filtering |
CN109783671B (zh) * | 2019-01-30 | 2021-10-08 | 京东方科技集团股份有限公司 | 一种以图搜图的方法、计算机可读介质及服务器 |
US11709752B2 (en) | 2020-04-02 | 2023-07-25 | Sap Se | Pause and resume in database system workload capture and replay |
US11615012B2 (en) | 2020-04-03 | 2023-03-28 | Sap Se | Preprocessing in database system workload capture and replay |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101084499A (zh) * | 2004-09-15 | 2007-12-05 | 迪利根特技术公司 | 用于搜索和存储数据的系统和方法 |
CN101145149A (zh) * | 2006-09-11 | 2008-03-19 | 千兆科技(深圳)有限公司 | 基于下载引擎的二进制文件相关搜索方法及系统 |
CN102782682A (zh) * | 2010-03-01 | 2012-11-14 | 微软公司 | 语义对象表征和搜索 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8041719B2 (en) * | 2003-05-06 | 2011-10-18 | Symantec Corporation | Personal computing device-based mechanism to detect preselected data |
EP1540542A2 (en) * | 2002-09-18 | 2005-06-15 | Vontu, Inc | Detection of preselected data |
JP4114600B2 (ja) * | 2003-12-02 | 2008-07-09 | 日本電気株式会社 | 可変長文字列検索装置及び可変長文字列検索方法並びにプログラム |
US7461089B2 (en) | 2004-01-08 | 2008-12-02 | International Business Machines Corporation | Method and system for creating profiling indices |
JP4810915B2 (ja) * | 2005-07-28 | 2011-11-09 | 日本電気株式会社 | データ検索装置及び方法、並びにコンピュータ・プログラム |
US7818326B2 (en) | 2005-08-31 | 2010-10-19 | Mcafee, Inc. | System and method for word indexing in a capture system and querying thereof |
US7805430B2 (en) | 2005-12-22 | 2010-09-28 | Sap Ag | Evaluation of name prefix and suffix during a search |
US8131722B2 (en) * | 2006-11-20 | 2012-03-06 | Ebay Inc. | Search clustering |
US7925644B2 (en) | 2007-03-01 | 2011-04-12 | Microsoft Corporation | Efficient retrieval algorithm by query term discrimination |
US8078454B2 (en) | 2007-09-28 | 2011-12-13 | Microsoft Corporation | Two-pass hash extraction of text strings |
US8572110B2 (en) | 2008-12-04 | 2013-10-29 | Microsoft Corporation | Textual search for numerical properties |
US8316056B2 (en) * | 2009-12-08 | 2012-11-20 | Facebook, Inc. | Second-order connection search in a social networking system |
US8515961B2 (en) | 2010-01-19 | 2013-08-20 | Electronics And Telecommunications Research Institute | Method and apparatus for indexing suffix tree in social network |
AU2011224115A1 (en) * | 2010-03-24 | 2011-10-13 | Visa International Service Association | Direct bill payment apparatuses, methods and systems |
CN102893281A (zh) | 2010-05-14 | 2013-01-23 | 日本电气株式会社 | 信息搜索设备、信息搜索方法、计算机程序和数据结构 |
US20110307460A1 (en) * | 2010-06-09 | 2011-12-15 | Microsoft Corporation | Navigating relationships among entities |
US9177346B2 (en) | 2010-07-01 | 2015-11-03 | Facebook, Inc. | Facilitating interaction among users of a social network |
US8498972B2 (en) | 2010-12-16 | 2013-07-30 | Sap Ag | String and sub-string searching using inverted indexes |
US8527497B2 (en) * | 2010-12-30 | 2013-09-03 | Facebook, Inc. | Composite term index for graph data |
GB2488373A (en) | 2011-02-28 | 2012-08-29 | Hsbc Holdings Plc | Database ranks results based on reputational scores |
US20120271541A1 (en) * | 2011-04-20 | 2012-10-25 | Telefonaktiebolaget L M Ericsson (Publ) | Route recommendation system |
US20130054631A1 (en) | 2011-08-30 | 2013-02-28 | Microsoft Corporation | Adding social network data to search suggestions |
US8738595B2 (en) * | 2011-11-22 | 2014-05-27 | Navteq B.V. | Location based full text search |
-
2013
- 2013-03-13 US US13/799,772 patent/US9171063B2/en not_active Expired - Fee Related
-
2014
- 2014-03-10 WO PCT/US2014/022445 patent/WO2014164443A1/en active Application Filing
- 2014-03-10 EP EP17171731.7A patent/EP3270302B1/en active Active
- 2014-03-10 JP JP2016500968A patent/JP5941239B1/ja active Active
- 2014-03-10 KR KR1020157035671A patent/KR101962715B1/ko active IP Right Grant
- 2014-03-10 MX MX2015012619A patent/MX348259B/es active IP Right Grant
- 2014-03-10 CA CA2903455A patent/CA2903455C/en not_active Expired - Fee Related
- 2014-03-10 CN CN201610943136.5A patent/CN107103017A/zh active Pending
- 2014-03-10 EP EP14780059.3A patent/EP2973070B1/en active Active
- 2014-03-10 BR BR112015023045A patent/BR112015023045A8/pt not_active Application Discontinuation
- 2014-03-10 CN CN201480026971.1A patent/CN105229639B/zh active Active
- 2014-03-10 AU AU2014249325A patent/AU2014249325B2/en not_active Ceased
- 2014-03-10 CA CA2919451A patent/CA2919451C/en not_active Expired - Fee Related
- 2014-03-10 KR KR1020157028421A patent/KR101582930B1/ko active Application Filing
-
2015
- 2015-09-03 IL IL241162A patent/IL241162A/en active IP Right Grant
- 2015-09-16 US US14/855,977 patent/US10318652B2/en active Active
-
2016
- 2016-01-18 AU AU2016200273A patent/AU2016200273B2/en not_active Ceased
- 2016-03-01 IL IL244370A patent/IL244370A0/en unknown
- 2016-05-19 JP JP2016100488A patent/JP6315835B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101084499A (zh) * | 2004-09-15 | 2007-12-05 | 迪利根特技术公司 | 用于搜索和存储数据的系统和方法 |
CN101145149A (zh) * | 2006-09-11 | 2008-03-19 | 千兆科技(深圳)有限公司 | 基于下载引擎的二进制文件相关搜索方法及系统 |
CN102782682A (zh) * | 2010-03-01 | 2012-11-14 | 微软公司 | 语义对象表征和搜索 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105229639B (zh) | 短词散列 | |
JP6363133B2 (ja) | 抽出演算子 | |
JP2016212908A (ja) | バーティカルベースのクエリのオプション化 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: California, USA Patentee after: Yuan platform Co. Address before: California, USA Patentee before: Facebook, Inc. |
|
CP01 | Change in the name or title of a patent holder |