CN117056383A - 搜索方法和电子设备 - Google Patents
搜索方法和电子设备 Download PDFInfo
- Publication number
- CN117056383A CN117056383A CN202310861566.2A CN202310861566A CN117056383A CN 117056383 A CN117056383 A CN 117056383A CN 202310861566 A CN202310861566 A CN 202310861566A CN 117056383 A CN117056383 A CN 117056383A
- Authority
- CN
- China
- Prior art keywords
- application
- index
- field
- search
- content
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 178
- 230000008569 process Effects 0.000 claims abstract description 98
- 238000010276 construction Methods 0.000 claims description 105
- 238000012937 correction Methods 0.000 claims description 44
- 238000012545 processing Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 description 375
- 230000003068 static effect Effects 0.000 description 179
- 239000012634 fragment Substances 0.000 description 52
- 230000011218 segmentation Effects 0.000 description 50
- 238000009434 installation Methods 0.000 description 45
- 238000007726 management method Methods 0.000 description 29
- 238000010586 diagram Methods 0.000 description 27
- 230000004044 response Effects 0.000 description 22
- 238000012423 maintenance Methods 0.000 description 14
- 230000006978 adaptation Effects 0.000 description 12
- 230000003993 interaction Effects 0.000 description 12
- 238000007781 pre-processing Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 9
- 230000008439 repair process Effects 0.000 description 6
- 102000009331 Homeodomain Proteins Human genes 0.000 description 5
- 108010048671 Homeodomain Proteins Proteins 0.000 description 5
- 238000010295 mobile communication Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000004931 aggregating effect Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010219 correlation analysis Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction 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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
-
- 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/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/232—Orthographic correction, e.g. spell checking or vowelisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了搜索方法和电子设备。电子设备可以将各应用对应的可搜索内容按照索引模板统一记录到索引信息中。该索引信息可以存储在索引信息文件中。后续,检测到输入的查询内容之后,电子设备无须拉起各应用中的进程,而是获取索引信息文件中的索引信息,再基于查询内容在索引信息中进行搜索,得到搜索结果。该搜索结果可以覆盖各应用中与查询内容相匹配的应用内容。这样可以节约搜索时间以及降低搜索中的功耗。
Description
技术领域
本申请涉及终端技术领域,尤其涉及搜索方法和电子设备。
背景技术
电子设备开启应用之后,可以将在应用中产生的数据记录到该应用的可搜索内容中。电子设备可以通过本地搜索功能拉起各应用,使得各应用分别在各自对应的可搜索内容中进行搜索,得到搜索结果。
电子设备提供的本地搜索功能是一种智慧化服务。通过本地搜索功能,电子设备可以基于用户输入的查询内容进行搜索,得到该查询内容对应的搜索结果。然后,显示部分或者全部搜索结果。电子设备基于查询内容进行搜索得到搜索结果时通常分为三个基本步骤。这三个基本步骤包括检索(query)理解、检索召回以及排序。
其中,query理解为基于查询内容的语义等信息对查询内容进行分析理解,进一步得到该查询内容对应的理解结果(也可以被称为query理解结果),该理解结果可以体现用户的意图。检索召回是基于理解结果在可搜索内容中进行搜索,找到与查询内容相关的内容作为搜索结果。排序是指按照相关性或者重要性等标准对搜索结果进行排序,使得搜索结果按照相关程度降序排列,以便让相关性较高的搜索结果可以被显示。
发明内容
本申请提供了一种搜索方法和电子设备,电子设备构建了索引信息文件,在进行本地搜索时,电子设备无须拉起各应用中的进程,而是通过搜索应用基于查询内容在索引信息文件中进行搜索,得到搜索结果,这样可以节约搜索时间以及降低搜索中的功耗。
第一方面,本申请提供了一种搜索方法,该方法包括:电子设备将该第一应用产生的第一内容记录到索引信息文件中,该索引信息文件包括用于描述该第一内容的索引值;该索引信息文件中还包括描述第二应用产生的第二内容的索引值;该电子设备在搜索应用中检测到搜索操作,该电子设备在该索引信息文件中进行搜索,得到搜索结果;该电子设备基于该搜索结果进行显示,该搜索结果包括描述该第一内容的部分或者全部索引值。
上述实施例中,第一应用产生的第一内容可以为下述说明书中涉及应用在运行过程中的动态可搜索内容(包括第一应用产生的业务数据以及动态功能数据)。该第一应用的一个示例可以为说明中举例说明的“设置”应用、“笔记”应用等。电子设备可以将第一应用在运行过程中产生的第一内容记录到索引信息文件中。其中,记录方式为基于第一内容生成索引值,该索引值可以用于描述第一内容。同理,对于不同于第一应用的其他应用(例如第二应用),电子设备也可以将第二应用生成的第二内容(包括第二应用生成的业务数据以及动态可搜索内容)记录到索引信息文件中。这里记录的方式是基于第二内容生成索引值。对于生成索引值的过程可以参考下述实施例中的内容,此处不再赘述。后续,电子设备无须拉起第一应用,即可以基于索引信息文件进行搜索第一应用中的第一内容,并且对描述该第一内容的部分或者全部索引值进行显示。在搜索时是在索引信息文件中进行的统一搜索,不涉及各应用(包括第一应用)的内容搜索,这样可以节约搜索时间以及降低搜索中的功耗。
结合第一方面,在一些实施例中,在该电子设备在该索引信息文件中进行搜索时,该第一应用未运行。
结合第一方面,在一些实施例中,该第一应用产生第一内容之后,该索引信息文件中增加新增字段,该新增字段对应的索引值是按照该第一应用预设的索引构建方式得到的,该新增字段对应的索引值包括于描述该第一内容的索引值。
上述实施例中,该新增字段可以为实施例中涉及的自定义字段。该新增字段对应的索引构建方式是第一应用定义的。这样可以实现丰富索引信息文件中的字段类型,使得基于索引信息文件进行搜索时可以返回更丰富的内容,也可以实现更全面的搜索。
结合第一方面,在一些实施例中,在所述索引信息文件中增加新增字段之前,该方法还包括:该电子设备将该第一应用指定的索引构建方式添加到索引模板中。
上述实施例中,索引模板中可以记录至少一个字段以及每一个字段对应的索引构建方式。至少一个字段中包括系统字段,还包括新增字段。其中,系统字段对应的索引构建方式是预先设置在索引模板中,新增字段对应的索引构建方式是电子设备在使用过程中基于电子设备中的应用(例如第一应用)新增的,这样可以丰富索引模板。
结合第一方面,在一些实施例中,该方法还包括:该电子设备将该新增字段对应的匹配方式以及检索理解方式添加到该索引模板中,该新增字段对应的检索理解方式用于指定对该查询内容进行检索理解得到理解结果的方式;该新增字段对应的匹配方式用于指定该新增字段对应的索引值与该理解结果进行匹配时的方式。
结合第一方面,在一些实施例中,电子设备将该第一应用产生的第一内容记录到索引信息文件中,具体包括:该电子设备基于第一文件路径将该描述该第一内容的索引值记录到该索引信息文件的第一子文件中;该第一文件路径中携带了该索引信息文件的名称以及该第一子文件的名称。
上述实施例中,可以按照垂域对索引信息文件划分子文件。例如第一应用产生的第一内容所建立的索引值可以看作第一应用对应的垂域,因此可以记录到第一应用对应的索引信息子文件(第一子文件)中。这样,可以便于对索引信息文件中的内容进行分类以及管理。
结合第一方面,在一些实施例中,该第一子文件中还包括该电子设备基于该第一内容建立的第一文档;该第一文档中包括该第一内容中的字段以及字段对应的字段值;该第一文档与该第一文档中字段值的索引值相关联。
结合第一方面,在一些实施例中,该索引模板中除了该第一子文件以外,还包括第二子文件,该第二子文件用于记录描述第二应用产生的第二内容的索引值,或者,还用于记录该电子设备基于该第二内容建立的第二文档;该第二文档中包括该第二内容中的字段以及字段对应的字段值;该第二文档与该第二文档中字段值的索引值相关联。
结合第一方面,在一些实施例中,该电子设备在该索引信息文件中进行搜索,具体包括:
该电子设备基于非空字段对应的检索理解方式对查询内容进行检索理解处理,得到该非空字段对应的理解结果;该非空字段为该索引信息文件中具有索引值的字段;该查询内容为该电子设备在该搜索应用中检测到搜索操作之后获取的内容;该电子设备基于该非空字段对应的理解结果按照该非空字段对应的匹配方式在该非空字段对应的索引值中确定与该非空字段对应的理解结果匹配成功的索引值;该非空字段对应的索引值为该索引信息文件中基于该非空字段对应的索引构建方式得到的索引值;该电子设备确定与匹配成功的索引值关联的文档作为搜索结果。
上述实施例中,非空字段可以为说明书中涉及的可搜索字段,非空字段可以理解说明书中涉及的M1个可搜索字段,其中,M1为大于或者等于1的整数。
结合第一方面,在一些实施例中,该电子设备基于非空字段对应的检索理解方式对查询内容进行检索理解处理之前,该方法还包括:该电子设备基于该索引信息文件中允许被该搜索应用访问的子文件的文件路径从该索引信息文件中获取该允许被该搜索应用访问的子文件;该允许被该搜索应用访问的子文件中包括该第一子文件或者该第二子文件;该电子设备将该允许被该搜索应用访问的子文件中具有索引值的字段确定为该非空字段。
上述实施例中,电子设备可以配置搜索应用允许访问的索引信息文件中的子文件。不同的搜索应用允许访问的子文件不同。电子设备可以基于搜索应用允许访问的子文件进行搜索。
结合第一方面,在一些实施例中,该允许被该搜索应用访问的子文件配置了使用纠错结果的情况下,该方法还包括:该电子设备对该查询内容进行纠错处理,得到纠错结果;该电子设备基于该纠错结果在该允许被该搜索应用访问的子文件中记录的索引值中确定与该纠错结果匹配成功的索引值。
上述实施例中,纠错结果可以理解为对查询内容进行纠错之后得到的内容。不同子文件可以配置是否使用纠错结果。说明中涉及的不同垂域是否可以使用纠错结果就是在描述不同垂域各自对应的子文件是否使用纠错结果。
结合第一方面,在一些实施例中,该电子设备确定与匹配成功的索引值关联的文档作为搜索结果之后,该方法还包括:该电子设备将在同一个允许被该搜索应用访问的子文件中确定的各搜索结果聚合为一组,并将该各搜索结果在一个展示框中进行显示。
结合第一方面,在一些实施例中,该方法还包括:在该第一应用运行的情况下,检测到在第一应用中输入查询内容的操作;在该查询内容中包括L个查询词语的情况下,该第一应用定义基于该查询内容进行搜索时的检索理解方式以及匹配方式;该L为大于或者等于2的整数;该L个查询词语中相邻的两个查询词语在输入时存在空格;该第一应用调用搜索服务应用通过该查询内容、该基于该查询内容进行搜索时的检索理解方式以及匹配方式在该索引信息文件中查询该第一应用中与该查询内容相关的内容。
上述实施例中,第一应用还可以理解为说明书中涉及的具有应用内搜索功能的应用(应用4)。
结合第一方面,在一些实施例中,该第一应用调用搜索服务应用通过该查询内容、该基于该查询内容进行搜索时的检索理解方式以及匹配方式在该索引信息文件中查询该第一应用中与该查询内容相关的内容,具体包括:该搜索服务按照该查询内容进行搜索时的检索理解方式对该查询内容进行检索理解处理,得到该查询内容的理解结果;该搜索服务应用基于该查询内容的理解结果,按照该查询内容进行搜索时的匹配方式在索引信息文件中的第一子文件中查询与该查询内容相关的内容;该第一子文件中包括用于描述该第一内容的索引值。
第二方面,本申请提供了一种搜索方法,该方法包括:电子设备运行第一应用;该电子设备将该第一应用产生的第一内容记录到索引信息文件中,相比于该记录之前,该索引信息文件中增加了新增字段,该新增字段对应的索引值是按照该第一应用指定的索引构建方式得到的,该新增字段对应的索引值用于描述第一内容;该电子设备在搜索应用中检测到搜索操作,该电子设备在该索引信息文件中进行搜索,并基于搜索结果进行显示,该搜索结果包括描述该第一内容的部分或者全部字段值,该部分或者全部字段值包括于该新增字段对应的索引值。
上述实施例中,第一应用产生的第一内容可以为下述说明书中涉及应用在运行过程中的动态可搜索内容(包括第一应用产生的业务数据以及动态功能数据)。该第一应用的一个示例可以为说明中举例说明的“设置”应用、“笔记”应用等。电子设备可以将第一应用在运行过程中产生的第一内容记录到索引信息文件中。其中,记录方式为基于第一内容生成索引值,该索引值可以用于描述第一内容。同理,对于不同于第一应用的其他应用(例如第二应用),电子设备也可以将第二应用生成的第二内容(包括第二应用生成的业务数据以及动态可搜索内容)记录到索引信息文件中。这里记录的方式是基于第二内容生成索引值。对于生成索引值的过程可以参考下述实施例中的内容,此处不再赘述。后续,电子设备无须拉起第一应用,即可以基于索引信息文件进行搜索第一应用中的第一内容,并且对描述该第一内容的部分或者全部索引值进行显示。在搜索时是在索引信息文件中进行的统一搜索,不涉及各应用(包括第一应用)的内容搜索,这样可以节约搜索时间以及降低搜索中的功耗。该新增字段可以为实施例中涉及的自定义字段。该新增字段对应的索引构建方式是第一应用定义的。这样可以实现丰富索引信息文件中的字段类型,使得基于索引信息文件进行搜索时可以返回更丰富的内容,也可以实现更全面的搜索。
结合第二方面,在一些实施例中,在该电子设备在该索引信息文件中进行搜索时,该第一应用未运行。
结合第二方面,在一些实施例中,在所述索引信息文件中增加新增字段之前,该方法还包括:该电子设备将该第一应用指定的索引构建方式添加到索引模板中。
上述实施例中,索引模板中可以记录至少一个字段以及每一个字段对应的索引构建方式。至少一个字段中包括系统字段,还包括新增字段。其中,系统字段对应的索引构建方式是预先设置在索引模板中,新增字段对应的索引构建方式是电子设备在使用过程中基于电子设备中的应用(例如第一应用)新增的,这样可以丰富索引模板。
结合第二方面,在一些实施例中,该方法还包括:该电子设备将该新增字段对应的匹配方式添加到该索引模板中,该新增字段对应的匹配方式用于指定该新增字段对应的索引值与查询内容进行匹配时的方式,该查询内容为在该搜索应用中检测到搜索操作时获取的内容。
结合第二方面,在一些实施例中,该方法还包括:该电子设备将该新增字段对应的匹配方式以及检索理解方式添加到该索引模板中,该新增字段对应的检索理解方式用于指定对该查询内容进行检索理解得到理解结果的方式;该新增字段对应的匹配方式用于指定该新增字段对应的索引值与该理解结果进行匹配时的方式。
结合第二方面,在一些实施例中,该电子设备将该第一应用产生的第一内容记录到索引信息文件中,具体包括:该第一应用通过调用第一接口将该第一内容发送至搜索服务应用;该搜索服务应用将该第一内容记录到该索引信息文件中。
结合第二方面,在一些实施例中,该电子设备将该第一应用产生的第一内容记录到索引信息文件中,具体包括:该第一应用将该第一内容记录到该第一应用对应的数据库中;搜索服务应用从该数据库中获取该第一内容;该搜索服务应用将该第一内容记录到该索引信息文件中。
结合第二方面,在一些实施例中,该搜索服务应用将该第一内容记录到该索引信息文件中,具体包括:该搜索服务应用分别基于该第一内容中各字段对应的索引构建方式对字段在该第一内容中对应的字段值建立索引值,得到各字段值的索引;一个字段值的索引值中包括该一个字段值本身,或者还包括该一个字段值的扩展值;该各字段中包括该新增字段,且该各字段中不同字段对应的索引构建方式存在不同;该搜索服务应用将该各字段值的索引值记录到索引信息文件中,该一个字段值对应的索引值在该索引信息文件中对应的字段与该一个字段值在该第一内容中对应的字段相同。
结合第二方面,在一些实施例中,该新增字段对应的索引构建方式记录于该索引模板中该第一应用的索引子模板中;该第一应用的索引子模板中还记录了系统字段对应的索引构建方式;该系统字段对应的索引构建方式还记录于该索引模板中该第二应用的索引子模板中,该第二应用的索引子模板中包括的字段以及字段对应的索引构建方式为该系统字段以及该系统字段对应的索引构建方式。
结合第二方面,在一些实施例中,该搜索服务应用将该各字段值的索引值记录到索引信息文件中,具体包括:该搜索服务应用基于文件路径将该各字段值的索引记值录到该索引信息文件的第一子文件中;该文件路径中携带了该索引信息文件的名称以及该第一子文件的名称,该第一子文件用于记录基于该第一应用产生的内容所建立的索引值。
结合第二方面,在一些实施例中,该第一子文件中还包括该电子设备基于该第一内容建立的文档;该文档中包括该第一内容中的字段以及字段对应的字段值;该文档与该文档中字段值的索引值相关联。
结合第二方面,在一些实施例中,该索引模板中除了该第一子文件以外,还包括第二子文件,该第二子文件用于记录基于其他应用产生的内容所建立的索引值,或者,用于记录基于该第一应用与该其他应用中的第二内容所建立的索引值;该第二内容为该第一应用与该其他应用在安装之后,第一次开启之前所具有的内容。
上述实施例中,第二内容可以为应用提供的静态功能数据。
结合第二方面,在一些实施例中,该电子设备在该索引信息文件中进行搜索,具体包括:
该电子设备基于非空字段对应的检索理解方式对查询内容进行检索理解处理,得到该非空字段对应的理解结果;该非空字段为该索引信息文件中具有索引值的字段;该查询内容为该电子设备在该搜索应用中检测到搜索操作之后获取的内容;该电子设备基于该非空字段对应的理解结果按照该非空字段对应的匹配方式在该非空字段对应的索引值中确定与该非空字段对应的理解结果匹配成功的索引值;该非空字段对应的索引值为该索引信息文件中基于该非空字段对应的索引构建方式得到的索引值;该电子设备确定与匹配成功的索引值关联的文档作为搜索结果。
结合第二方面,在一些实施例中,该电子设备基于非空字段对应的检索理解方式对查询内容进行检索理解处理之前,该方法还包括:该电子设备基于该索引信息文件中允许被该搜索应用访问的子文件的文件路径从该索引信息文件中获取该允许被该搜索应用访问的子文件;该允许被该搜索应用访问的子文件中包括该第一子文件或者该第二子文件;该电子设备将该允许被该搜索应用访问的子文件中具有索引值的字段确定为该非空字段。
结合第二方面,在一些实施例中,该允许被该搜索应用访问的子文件配置了使用纠错结果的情况下,该方法还包括:该电子设备对该查询内容进行纠错处理,得到纠错结果;该电子设备基于该纠错结果在该允许被该搜索应用访问的子文件中记录的索引值中确定与该纠错结果匹配成功的索引值。
结合第二方面,在一些实施例中,该电子设备确定与匹配成功的索引值关联的文档作为搜索结果之后,该方法还包括:该电子设备将在同一个允许被该搜索应用访问的子文件中确定的各搜索结果聚合为一组,并将该各搜索结果在一个展示框中进行显示。
结合第二方面,在一些实施例中,在该搜索应用为该第一应用的情况下,该搜索应用访问的子文件为该第一子文件。
第三方面,本申请提供了一种搜索方法,该方法包括:电子设备安装第一应用;该第一应用的安装包中包括字段信息,该字段信息用于描述该第一应用的第一功能;响应于该第一应用安装完成,该电子设备的索引信息文件中包括描述该第一功能的第一索引值,该第一索引值与该字段信息相关,该索引信息文件还包括描述第二应用的第二功能的第二索引值;响应于对搜索应用的第一操作,该电子设备显示搜索结果,该搜索结果包括该索引信息文件中与该第一功能相关的部分或者全部索引值,其中,该第一应用处于未运行的状态。
上述实施例中,第一应用的第一功能可以为下述说明中涉及的静态功能。字段信息可以记录在第一应用的安装包中的搜索配置文件中。第一操作可以理解为在第一应用未运行时,针对搜索应用的搜索操作。该第一应用的一个示例可以为说明中举例说明的“设置”应用、“笔记”应用等。电子设备可以将第一应用的第一功能记录到索引信息文件中。其中,记录方式为基于第一应用的安装包中的字段信息生成索引值(第一索引值),该第一索引值可以用于描述第一功能。同理,对于不同于第一应用的其他应用(例如第二应用),电子设备也可以将第二应用的静态功能(第二功能)记录到索引信息文件中。这里记录的方式是基于第二应用的安装包中的字段信息生成索引值(第二索引值)。对于生成索引值的过程可以参考下述实施例中的内容,此处不再赘述。后续,电子设备无须拉起第一应用,即可以基于索引信息文件进行搜索第一应用中的第一功能,并且对描述该第一功能相关的部分或者全部索引值进行显示。在搜索时是在索引信息文件中进行的统一搜索,不涉及各应用(包括第一应用)的内容搜索,这样可以节约搜索时间以及降低搜索中的功耗。
结合第三方面,在一些实施例中,该方法还包括:响应于对该搜索应用的第二操作,该电子设备显示搜索结果,该搜索结果包括该索引信息文件中与该第一功能相关的部分或者全部索引值,其中,该第一应用处于运行的状态。
上述实施例中,该第二操作可以理解为在第一应用运行时,针对搜索应用的搜索操作,电子设备在搜索应用中执行搜索操作得到搜索结果并基于搜索结果显示的过程与第一应用是否运行无关,因为不需要第一应用参与其中。
结合第三方面,在一些实施例中,该第一索引值包括该字段信息中字段值对应的索引值,一个字段值对应的索引值中包括该一个字段值本身,或者还包括该一个字段值的扩展值。
结合第三方面,在一些实施例中,该方法还包括:
该电子设备基于第一文件路径将该第一索引值以及该第二索引值记录到该索引信息文件的第一子文件中,该第一文件路径中携带了该索引信息文件的名称以及该第一子文件的名称。
上述实施例中,可以按照垂域对索引信息文件划分子文件。例如第一索引值以及第二索引值等基于应用的静态功能数据建立的索引值可以认为对应“应用功能”垂域,因此第一索引值以及第二索引值可以记录到“应用功能”垂域对应的索引信息子文件(第一子文件)中。这样,可以便于对索引信息文件中的内容进行分类以及管理。
结合第三方面,在一些实施例中,该第一子文件中还包括该电子设备基于该字段信息建立的第一文档,该第一文档中包括该字段信息中描述一个第一功能的字段以及字段对应的字段值,该第一文档与该第一索引值相关联。
结合第三方面,在一些实施例中,该方法还包括:该电子设备运行该第一应用产生第一内容之后,该索引信息文件中还包括描述该第一内容的第三索引值。
上述实施例中,第一应用产生的第一内容可以为下述说明书中涉及应用在运行过程中的动态可搜索内容(包括第一应用产生的业务数据以及动态功能数据)。电子设备可以将第一应用在运行过程中产生的第一内容记录到索引信息文件中。其中,记录方式为基于第一内容生成索引值(第三索引值),该第三索引值可以用于描述第一内容。
结合第三方面,在一些实施例中,该第一应用产生第一内容之后,该索引信息文件中增加新增字段,该新增字段对应的索引值是按照该第一应用预设的索引构建方式得到的,该新增字段对应的索引值包括于该第三索引值。
上述实施例中,该新增字段可以为实施例中涉及的自定义字段。该新增字段对应的索引构建方式是第一应用定义的。这样可以实现丰富索引信息文件中的字段类型,使得基于索引信息文件进行搜索时可以返回更丰富的内容,也可以实现更全面的搜索。
结合第三方面,在一些实施例中,该电子设备中还包括索引模板,该索引模板中包括至少一个字段以及该至少一个字段中每一个字段各自对应的索引构建方式,该一个字段对应的索引构建方式用于对该一个字段对应的字段值建立索引值。
上述实施例中,索引模板中可以记录至少一个字段以及每一个字段对应的索引构建方式。至少一个字段中包括系统字段。其中,系统字段对应的索引构建方式是预先设置在索引模板中。
结合第三方面,在一些实施例中,该方法还包括:该电子设备将该第一应用预设的索引构建方式添加到该索引模板中。
上述实施例中,索引模板中除了可以记录系统字段以及系统字段对应的索引构建方式之外,还包括新增字段以及新增字段对应的索引构建方式。新增字段对应的索引构建方式是电子设备在使用过程中基于电子设备中的应用(例如第一应用)新增的,这样可以丰富索引模板。
结合第三方面,在一些实施例中,该方法还包括:该电子设备将该新增字段对应的匹配方式添加到该索引模板中,该新增字段对应的匹配方式用于指定该新增字段对应的索引值与查询内容进行匹配时的方式,该查询内容为在该搜索应用中检测到该第一操作时获取的内容。
结合第三方面,在一些实施例中,该方法还包括:该电子设备将该新增字段对应的匹配方式以及检索理解方式添加到该索引模板中,该新增字段对应的检索理解方式用于指定对该查询内容进行检索理解得到理解结果的方式;该新增字段对应的匹配方式用于指定该新增字段对应的索引值与该理解结果进行匹配时的方式;该查询内容为在该搜索应用中检测到该第一操作时获取的内容。
结合第三方面,在一些实施例中,该方法还包括:该电子设备基于第二文件路径将该第三索引值记录到该索引信息文件的第二子文件中,该第二文件路径中携带了该索引信息文件的名称以及该第二子文件的名称。
上述实施例中,第二子文件可以为第一应用的垂域所对应的索引信息子文件。例如,在第一应用为“笔记”应用的情况下,该第二文件可以为“笔记”应用对应的索引信息子文件。该第二子文件用于记录“笔记”应用产生的内容。
结合第三方面,在一些实施例中,该第二子文件中还包括该电子设备基于该第一内容建立的第二文档;该第二文档中包括该第一内容中的字段以及字段对应的字段值;该第二文档与该第三索引值相关联。
结合第三方面,在一些实施例中,该索引信息文件中除了该二子文件以外,还包括第三子文件,该第三子文件用于记录第四索引值;其中,该第四索引值用于描述该第二应用在运行之后产生的内容。
结合第三方面,在一些实施例中,该方法还包括:该第一应用通过调用第一接口将该第一内容发送至搜索服务应用;该搜索服务应用将该第一内容记录到该索引信息文件中。
上述实施例中,上述实施例中,该第一接口可以为说明书中涉及的索引构建接口。
结合第三方面,在一些实施例中,该第一应用产生第一内容之后,该方法还包括:该第一应用将该第一内容记录到该第一应用对应的数据库中;搜索服务应用从该数据库中获取该第一内容;该搜索服务应用将该第一内容记录到该索引信息文件中。
上述实施例中,对于第一应用没有配置第一接口的情况,搜索服务应用可以使用数据库插装的方式从第一应用对应的数据库中获取第一内容,进而将第一内容记录到索引信息文件中。
结合第三方面,在一些实施例中,该搜索服务应用将该第一内容记录到该索引信息文件中,具体包括:该搜索服务应用基于该第一内容中字段对应的索引构建方式对字段在该第一内容中对应的字段值建立索引值,得到该第三索引值;其中,该第一内容中的字段包括该新增字段,且该第一内容中不同字段对应的索引构建方式存在不同;该搜索服务应用将该第三索引值记录到索引信息文件中。
第四方面,本申请实施例提供了一种电子设备,该电子设备包括:一个或多个处理器和存储器;该存储器与该一个或多个处理器耦合,该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令,该一个或多个处理器调用该计算机指令以使得该电子设备执行如第一方面、第二方面或者第三方面中至少一个方面实施的方法。
第五方面,本申请实施例提供了一种计算机可读存储介质,包括指令,当该指令在电子设备上运行时,使得该电子设备执行如第一方面、第二方面或者第三方面中至少一个方面实施的方法。
第六方面,本申请实施例提供了一种芯片系统,该芯片系统应用于电子设备,该芯片系统包括一个或多个处理器,该处理器用于调用计算机指令以使得该电子设备执行如第一方面、第二方面或者第三方面中至少一个方面实施的方法。
第七方面,本申请实施例提供了一种包含指令的计算机程序产品,当该计算机程序产品在电子设备上运行时,使得该电子设备执行如第一方面、第二方面或者第三方面中至少一个方面实施的方法。
可以理解地,第四方面提供的电子设备、第五方面提供的计算机存储介质、第六方面提供的芯片系统和第七方面提供的计算机程序产品均用于执行本申请实施例所提供的方法。因此,其所能达到其他有益效果可参考对应方法中的有益效果,此处不再赘述。
附图说明
图1示出了对各应用中的可搜索内容进行搜索时的示意图;
图2示出了基于provider类对应用的可搜索内容进行搜索得到搜索结果的过程;
图3A-图3C示出了电子设备获得静态功能以及将静态功能数据记录到索引信息的示意图;
图3D-图3F示出了电子设备获得静态功能以及将静态功能数据记录到索引信息的另一个示意图;
图4A-图4B示出了电子设备基于应用产生动态功能以及将动态功能对应的动态功能数据记录到索引信息的示意图;
图5A-图5D示出了电子设备基于应用产生业务数据以及将业务数据记录到索引信息的示意图;
图6A以及图6B示出了电子设备基于索引信息进行实现本地搜索功能的示意图;
图7A-图7E示出了电子设备按照垂域对搜索结果进行显示的示例性用户界面;
图8示出了电子设备基于静态可搜索内容以及动态可搜索内容生成索引的示例性方式;
图9示出了生成索引信息以及基于索引信息进行搜索时涉及的示例性软件结构框架;
图10示出了通过搜索配置文件建立并记录索引的示例性软件结构框架以及处理流程;
图11示出了通过搜索配置文件建立并记录索引以及文档时内部各模块之间的示例性交互流程;
图12示出了通过配置接口建立并记录索引的示例性软件结构框架以及处理流程;
图13示出了配置接口建立并记录索引以及文档时内部各模块之间的示例性交互流程;
图14示出了通过数据库插装建立并记录索引的示例性软件结构框架以及处理流程;
图15示出了数据库插装建立并记录索引以及文档时内部各模块之间的示例性交互流程;
图16示出了通过索引信息实现搜索的示例性软件结构框架以及处理流程;
图17示出了通过索引信息实现搜索时内部各模块之间的示例性交互流程;
图18示出了输入查询内容进行搜索时的示意图;
图19示出了查询内容中包括L个查询词语进行搜索的示意图;
图20示出了电子设备得到索引信息文件并基于索引信息文件进行搜索的示例性流程图;
图21是本申请实施例提供的电子设备的结构示意图。
具体实施方式
本申请以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括复数表达形式,除非其上下文中明确地有相反指示。还应当理解,本申请中使用的术语“和/或”是指并包含一个或多个所列出项目的任何或所有可能组合。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在一种方案中,电子设备以应用为单位对应用的数据进行记录。电子设备开启应用之后,可以将通过应用产生的数据记录到该应用对应的可搜索内容中。该可搜索内容可以存储在应用中。例如,电子设备在“笔记”应用中新建了一个笔记,则可以将该笔记对应的数据记录在“笔记”应用中。后续,电子设备可以拉起各应用分别对各自记录的数据进行搜索。
图1示出了对各应用中的可搜索内容进行搜索时的示意图。
如图1所示,首先,电子设备开启搜索功能,获取输入的查询内容。然后,电子设备拉起各应用中的进程进行搜索。该搜索涉及多个应用为一个多线程搜索。在搜索的过程中,各应用通过各自的进程独立在记录的可搜索内容中搜索与查询内容相关的内容。其中,应用记录的可搜索内容中包括该应用产生的数据。在基于与查询内容相关的内容得到该应用进行搜索时的搜索结果。例如,进程被拉起的应用可以包括“笔记”应用、“通讯录”应用等应用。其中,“笔记”应用以及“通讯录”应用可以分别在各自记录的可搜索内容中搜索与查询内容相关的内容,并分别返回搜索结果。电子设备等待各应用返回搜索结果。在获取到各应用返回搜索结果之后,电子设备基于搜索结果进行显示。
该搜索功能可以集成在搜索应用中,该搜索应用在电子设备中的显示形态包括但不限于输入框或者图标等。被拉起进程的应用可以称为被搜索应用。
在一些可能的情况下,电子设备可以通过各应用对应的provider类拉起各应用的进程进行搜索。其中,provider类是由应用开发方提供的,该provider类可以在应用安装时记录在搜索服务工具中。该搜索服务工具可以被搜索应用调用,用于执行搜索相关的操作以使得电子设备完成搜索。下面基于图2详细描述电子设备基于provider类如何对应用中记录的数据进行搜索以得到并显示搜索结果。
图2示出了基于provider类对应用的可搜索内容进行搜索得到搜索结果的过程。
如图2所示,电子设备基于provider类如何对应用中记录的内容进行搜索以得到并显示搜索结果的过程可以参考下述对步骤S1-步骤S8的描述。
S1.搜索应用获取输入的查询内容。
该搜索应用可以为用户提供多种输入查询内容的方式,包括但不限于语音输入或者键盘输入等。
S2.搜索应用通过搜索服务工具获取各应用对应的provider类。
各应用对应的provider类可以包括被搜索应用A对应的provider类以及被搜索应用B对应的provider类。其中,被搜索应用A的一个示例可以为前述涉及的“笔记”应用。被搜索应用B的一个示例可以为前述涉及的“通讯录”应用。
后续,搜索服务工具通过各应用对应的provider类分别拉起各应用中的进程。各应用分别基于各自对应的进程在各自记录的可搜索内容中搜索与查询内容相关的内容,得到搜索结果,并向搜索服务工具返回搜索结果。下文中,以被搜索应用A以及被搜索应用B为例描述过程。
其中,被搜索应用A得到搜索结果,并向搜索服务工具返回搜索结果的过程可以参考下述对步骤S3a-S5a的描述。
S3a.搜索服务工具通过被搜索应用A对应的provider类拉起被搜索应用A的进程。
S4a.被搜索应用A基于查询内容在应用A中进行搜索,得到搜索结果A。
S5a.被搜索应用A向搜索服务工具返回搜索结果A。
被搜索应用B得到搜索结果,并向搜索服务工具返回搜索结果的过程可以参考下述对步骤S3b-S5b的描述。
S3b.搜索服务工具通过被搜索应用B对应的provider类拉起被搜索应用B的进程。
S4b.基于查询内容在应用B中进行搜索,得到搜索结果B。
S5b.被搜索应用B向搜索服务工具返回搜索结果B。
S6.搜索服务工具基于各搜索结果确定相关性符合要求的搜索结果。
在一些可能的情况下,相关性符合要求的搜索结果可以包括各搜索结果中与查询内容相关性最高的前Q个搜索结果。其中,Q为大于等于1的整数。
搜索服务工具等待各应用返回搜索结果。在搜索服务工具获取到各应用返回搜索结果之后,基于各搜索结果确定相关性符合要求的搜索结果。
S7.搜索服务工具向搜索应用返回相关性符合要求的搜索结果。
S8.搜索应用显示相关性符合要求的搜索结果。
由此可见,电子设备完成一次搜索需要拉起多个应用的进程,电子设备运行的进程较多,则会存在功耗高的问题。并且,电子设备在进行搜索时需要等到各应用返回各自搜索得到的搜索结果之后,才可以基于各搜索结果确定相关性符合要求的搜索结果,存在时延较长的问题。
针对前述涉及的搜索时需拉起各应用导致的高功耗、高时延问题,提出了一种搜索方法。电子设备可以将各应用对应的可搜索内容按照索引模板统一记录到索引信息中。该索引信息可以存储在索引信息文件中。后续,检测到输入的查询内容之后,电子设备无须拉起各应用中的进程,而是获取索引信息文件中的索引信息,再基于查询内容在索引信息中进行搜索,得到搜索结果。该搜索结果可以覆盖各应用中与查询内容相匹配的应用内容。例如,电子设备在“通讯录”应用中生成了一个联系人信息(例如为lily,122XXX1)。又在“邮箱”应用中生成了一个邮件,邮件内容中也包括该联系人信息。电子设备可以按照索引模板将联系人信息以及邮件内容统一记录到索引信息。后续,检测到查询内容(例如为lily,122XXX1)时,在没有拉起“联系人”应用以及“邮箱”应用的情况下,也可以在索引信息中找到包括“lily,122XXX1”的联系人信息以及邮件。这里应该理解的是,电子设备表示一个可搜索内容的方式可以是通过字段以及各字段对应的字段值实现的。字段可以用于描述可搜索内容中不同部分的性质。字段可以包括标题、描述、时间等。字段值可以用于描述可搜索内容中不同部分的具体取值。索引模板的一个作用在于提供了一定的规则使得电子设备基于可搜索内容中各字段值所对应的字段对字段值建立索引,得到该可搜索内容中各字段值对应的索引。该可搜索内容中各字段值对应的索引也可以表示该可搜索内容。一个字段值对应的索引可以用来代表该字段值。一个字段值对应的索引中可以包括该字段值本身,或者,还可以包括该字段值衍生出的其他可以代表该字段值的扩展值(例如该字段值的分词等扩展值)。索引信息的作用在于将各可搜索内容对应的索引集中起来便于使用索引(例如基于索引进行搜索)。其中,一个可搜索内容对应的索引为该可搜索内容中各字段值对应的索引。
在一些可能的情况下,字段值对应的索引也可以被称为字段值对应的索引值,或者字段值的索引值。
在一些可能的情况下,存储索引模板以及索引信息的文件的格式可以为lucene格式。
下面对索引模板以及索引信息进行详细描述。
其中,索引模板定义了建立索引以及使用索引的规则。该索引模板中可以包括至少一个字段、各字段对应的属性。
表1示出了一种示例性索引模板。
表1
如表1所述,索引模板中的字段可以包括标题、描述、电话号等。索引对应的属性可以包括索引构建方式、匹配方式,还可以包括query理解方式等。
下面结合表1对索引模板进行详细描述。
索引模板中的字段规定了可搜索内容中可以用于生成索引的字段以及字段值。例如,电子设备通过“通讯录”应用生成了一个联系人信息。该联系人信息中可以包括“标题”字段以及“标题”字段对应的字段值(例如“维修电话”),还可以包括“电话号”字段以及“电话号”字段对应的字段值(例如“152XXX”)等。在索引模板中包括“标题”字段以及“电话号”字段的情况下,电子设备可以基于联系人信息中“标题”字段对应的字段值以及“电话号”字段对应的字段值建立索引。其中,关于建立索引的详细描述可以参考下述对各字段对应的属性的描述。
索引模板中各字段对应的属性可以包括各字段对应的索引构建方式、各字段对应的匹配方式。一个字段对应一个索引构建方式以及一个匹配方式。
其中,一个字段对应的索引构建方式用于指示:如何通过该字段对应的字段值建立该字段值对应的索引。字段值对应的索引可以用来代表该字段值,关于索引的其他描述可以参考前述内容,此处不再赘述。一个字段的索引构建方式可以包括取字段值。其中,取字段值的方式可以为默认的,下文中不再强调。一个字段对应的索引构建方式除了取字段值以外,还可以包括但不限于以下构建形式中的一个或者多个。
索引构建形式1:预处理。
索引构建方式中的预处理可以用于对字段值进行预处理,得到更符合本文规范的预处理结果。索引构建方式中的预处理包括对字段值进行大小写统一、将该字段值中的全角字符转化为半角字符、删除字段值中的空格符号、将该字段值中的繁体字符转化为简体字符中的一个或者多个。
索引构建形式2:分词。
索引构建方式中的分词是指:采用分词技术将字段值划分为R个词语。R可以为大于等于1的整数。例如,将字段值“维修电话”进行分词,得到的分词结果中可以包括2个词语,分别为“维修”、“电话”。
索引构建形式3:分词拼音。
索引构建方式中的分词拼音是指:生成字段值对应各分词的拼音。例如,对于字段值“维修电话”,在分词结果为“维修”、“电话”的情况下,分词拼音结果对应为“weixiu”、“dianhua”。
索引构建形式4:首字母拼音。首字母拼音结果中包括字段值中每个字符的拼音的首字母。
这里应该理解的是,前述涉及的预处理结果、分词结果、分词拼音结果以及首字母拼音结果均可以称为扩展值。除了前述涉及的索引构建形式,一个索引构建方式中还可以包括其他的索引构建形式,本申请实施例对此不再限定。
这里以基于“标题”字段对应的索引构建方式为“标题”字段对应的一个字段值建立索引为例进行示例性描述。例如,“标题”字段对应的索引构建方式为:“取字段值+预处理+分词+分词拼音+首字母拼音”。该“标题”字段对应的一个字段值为前述联系人信息中的“维修电话”。则“维修电话”这一字段值基于“标题”字段对应的索引构建方式建立的索引为:“维修电话(字段值)+维修电话(预处理结果)+维修、电话(分词结果)+weixiu、dianhua(分词拼音结果)+wxdh(首字母拼音结果)”。
这里应该理解的是,不同字段的索引构建方式可以相同也可以不相同。可以根据各字段的含义设置其对应的索引构建方式。如表1所示,“标题”字段对应的索引构建方式可以为:“取字段值+预处理+分词+分词拼音+首字母拼音”。“描述”字段对应的索引构建方式可以为:“取字段值+预处理+分词+分词拼音”。“电话号”字段对应的索引构建方式可以为:取字段值。其中,“标题”字段通常可以为应用名称、应用功能名称、联系人名称、文件(笔记或者邮件等)名称等。“描述”字段通常可以为文件正文,对应用名称、功能名称等的说明等。
一个字段对应的匹配方式可以用于指示:查询内容与该字段对应的索引进行匹配时,如何确定与查询内容匹配成功的字段值或者扩展值(例如该字段值的分词等扩展值)。
其中,一个字段对应的匹配方式可以包括但不限于以下匹配形式中的一个或者多个。
匹配形式1:分词and匹配。
分词and匹配是指:利用查询内容的分词结果与该字段所对应的索引进行匹配确定匹配成功的索引(字段值或者扩展值),且,一个字段值或者扩展值与查询内容匹配成功的条件为:该字段值或者扩展值中出现了查询内容的全部分词结果。这里以查询内容为:“维修电话”进行举例说明。在查询内容的分词结果为:“维修”、“电话”的情况下,匹配成功的字段值或者扩展值需同时出现“维修”、“电话”这两个分词。
匹配形式2:分词or匹配。
分词or匹配是指:利用查询内容的分词结果与该字段对应的索引进行匹配确定匹配成功的索引(字段值或者扩展值),且,一个字段值或者扩展值与查询内容匹配成功的条件为:该字段值或者扩展值中出现了查询内容的至少一个分词结果。这里以查询内容为:“维修电话”进行举例说明。在查询内容的分词结果为:“维修”、“电话”的情况下,匹配成功的字段值或者扩展值需至少包括“维修”、“电话”这两个分词结果中的一个。
匹配形式3:前缀匹配。
前缀匹配是指:利用查询内容或者可以代表该查询内容的理解结果与该字段对应的索引进行匹配确定匹配成功的索引(包括字段值或者扩展值),且,一个字段值或者扩展值与查询内容匹配成功的条件为:该字段值或者扩展值中包括该查询内容。这里以查询内容为:“维修电话”进行举例说明。匹配成功的字段值或者扩展值需至少包括“维修电话”这一查询内容。
其中,代表该查询内容的理解结果可以包括但不限于以下内容中的一个或者多个:对查询内容进行纠错之后得到的纠错内容、对查询内容进行预处理之后得到的内容(预处理后的查询内容,简称为预处理内容)。
匹配形式4:完全匹配。
完全匹配是指:利用查询内容或者可以代表该查询内容的理解结果与该字段对应的索引进行匹配确定匹配成功的索引(字段值或者扩展值),且,一个字段值或者扩展值与查询内容匹配成功的条件为:该字段值或者扩展值与该查询内容相同。这里以查询内容为:“维修电话”进行举例说明。匹配成功的字段值或者扩展值与“维修电话”这一查询内容相同。
除了前述涉及的匹配形式,还可以包括其他的匹配形式,本申请实施例对此不再限定。例如,还可以包括同义词and匹配、同义词or匹配等。其中,同义词可以为基于查询内容各分词结果分别取同义词之后得到的。其中,同义词and匹配、同义词or匹配的描述与分词and匹配、分词or匹配相似,可以参考前述相关描述,将分词替换成同义词即可。
这里应该理解的是,不同字段的匹配方式可以相同也可以不相同。如表1所示,“标题”字段对应的匹配方式可以为:“分词and匹配、前缀匹配”。“描述”字段对应的匹配方式可以为:“分词or匹配、前缀匹配”。“电话号”字段对应的匹配方式可以为:完全匹配。
在一些可能的情况下,索引模板中各字段对应的属性还可以包括各字段对应的query理解方式。一个字段对应一个query理解方式。
一个字段对应的query理解方式用于指示:基于查询内容与该字段对应的索引进行匹配之前,如何对该查询内容进行理解,得到该查询内容对应的理解结果。该理解结果可以表示查询内容。
在一些可能的情况下,电子设备可以基于该理解结果以及查询内容分别与该字段对应的索引按照该字段对应的匹配方式进行匹配,确定匹配成功的字段值或者扩展值。
在另一些可能的情况下,电子设备可以利用该理解结果代表查询内容与该字段对应的索引按照该字段对应的匹配方式进行匹配,确定匹配成功的字段值或者扩展值。
其中,一个字段对应的query理解方式可以包括但不限于以下理解形式中的一个或者多个。
理解形式1:预处理。
query理解方式中的预处理是指:对查询内容进行预处理,得到预处理后的查询内容(简称为预处理内容)。
理解形式2:分词。
query理解方式中的分词是指:基于预处理内容进行分词,得到查询内容对应的分词结果。
理解形式3:取同义词。
query理解方式中的取同义词是指:基于分词结果取同义词,得到查询内容各分词结果对应的同义词。
除了前述涉及的理解形式,还可以包括其他的理解形式,本申请实施例对此不再限定。例如,还可以包括query纠错处理,即对查询内容进行纠错处理,得到纠错后的内容。
这里应该理解的是,通常来说,一个字段对应的query理解方式与该字段对应的匹配方式是相互关联的。一个匹配方式中存在的匹配类型均可以在query理解方式中为其配置相应的理解形式。例如,匹配方式中匹配形式包括分词匹配(包括分词and匹配、分词or匹配)的情况下,query理解方式中可以包括分词。匹配方式中匹配形式包括前缀匹配或者完全匹配的情况下,query理解方式中可以包括预处理、纠错中的一个或者多个。
由此,可以理解的是,在一些可能的情况下,索引模板中可以不包括各字段对应的query理解方式,而是在获取各字段对应的匹配方式时,基于匹配方式对查询内容进行query理解。
在另一些可能的情况下,可以将字段对应的query理解方式以及匹配方式分开进行定义,使得索引模板中可以包括各字段对应的query理解方式以及匹配方式。这样,便于管理和使用各字段对应的属性。
这里应该理解的是,不同字段的匹配方式可以相同也可以不相同。如表1所示,“标题”字段对应的query理解方式可以为:“预处理+分词+取同义词”。“描述”字段对应的query理解方式可以为:“预处理+分词+取同义词”。“电话号”字段对应的query理解方式可以为:预处理。
索引信息中可以包括各字段值对应的索引。在一些可能的情况下,索引信息除了各字段对应的索引,还可以包括各字段值所属文档的文档信息。
其中,关于各字段所对应索引的相关描述可以参考前述内容,此处不再赘述。
下面详细对文档信息进行描述。
文档信息中记录了各字段所属的文档。一个可搜索内容可以对应至少一个文档。一个文档中可以包括来自同一个可搜索内容的各字段及各字段对应的字段值。一个文档中各字段值对应的索引(包括各字段值及其扩展值)与该文档均建立了联系。在搜索结果为文档的情况下,电子设备确定一个与查询内容匹配成功的字段值或者扩展值时,可以映射到该字段值或者扩展值关联的文档,并将该文档召回。
在一些可能的情况下,一个文档与该文档中各字段值对应的索引(包括各字段值及其扩展值)相关联的方式包括:为文档、该文档中各字段值,以及各字段值的扩展值设置相同的标识号,使得电子设备可以通过字段值或者扩展值的标识号找到相同标识号的文档。
电子设备在使用过程中可以通过各应用产生大量的可搜索内容,并将该大量的可搜索内容按照索引模板生成对应的索引记录在索引信息中。因此,可索引信息中可以保存大量的索引,为了便于对索引进行管理和搜索,在一些可能的情况下,电子设备可以将索引信息按照垂域进行划分,得到K个索引信息分片。一个索引信息分片对应一个垂域。也可以理解为,一个可搜索内容可以对应一个垂域,在对可搜索内容对应的索引进行记录时,可以将该可搜索内容对应的索引记录到该垂域(对应该可搜索内容)对应的索引信息分片中。
其中,垂域可以用于描述可搜索内容的类型。也可以理解为一个可搜索内容对应的垂域可以用于指示该可搜索内容所来自的应用,或者要记录到哪个索引信息分片中。垂域的数量和划分垂域的方式可以根据实际使用情况而定,不应该构成对本申请实施例的限定。
在一些可能的情况下,将索引信息记录到索引信息文件中时。如果存在L1个垂域,索引信息文件中就可以包括L1个索引信息子文件,一个索引信息子文件可以看作一个索引信息分片。一个索引信息子文件对应一个垂域。一个索引信息子文件对应的垂域可以用该索引信息子文件的名称表示。一个索引信息子文件对应的垂域指示了索引信息子文件用于记录的可搜索内容的类型,即该索引信息子文件中的索引为基于该可搜索内容建立的索引。每一个索引信息子文件均具有一个文件路径,每一个索引信息子文件对应的文件路径可以用于找到该索引信息子文件。每一个索引信息子文件具有的文件路径中可以包括索引信息文件的名称,还包括索引信息子文件的名称。
在一些可能的情况下,电子设备可以将各应用在开启之后产生的内容分别对应一个垂域,即电子设备可以为各应用分别建立一个索引信息子文件,各应用在开启之后产生的内容可以分别记录到各应用对应的索引信息子文件中。这里可以理解为各应用分别具有一个对应的索引信息子文件。例如,对于“笔记”应用,在将“笔记”应用中产生的内容看作一个垂域(例如“笔记”垂域)时,电子设备可以将在“笔记”中产生的内容(例如笔记)记录到“笔记”应用对应的索引信息子文件中。“笔记”应用对应的索引信息子文件的名称可以表示该索引信息子文件对应的垂域。这样,通过“笔记”应用对应的索引信息子文件的名称即可以确定该索引信息子文件中记录的索引为基于“笔记”应用中产生的内容(包括下述涉及的动态功能以及业务数据)建立的。
电子设备还可以将各应用在安装之后,第一次开启之前就具有的内容(例如静态功能数据)分别对应至少一个垂域。例如,可以将静态功能对应一个垂域,电子设备可以为该静态功能建立一个索引信息子文件,将该静态功能数据记录到静态功能对应的索引信息子文件中。
基于前述内容可知,即使可搜索内容来自不同的应用,电子设备也可以对该不同可搜索内容中的相同字段采用相同的方式建立索引,并将其统一记录到索引信息中。便于对可搜索内容进行存储和管理。同时对于一个字段的属性(例如索引构建方式、匹配方式或者query理解方式等)电子设备也可以在索引模板进行更改,便于管理不同字段的属性。
在一些可能的情况下,电子设备可以记录到索引信息中的可搜索内容包括:电子设备在下载应用之后,第一次启动应用之前,应用已经具备的内容(也可以被称为静态可搜索内容),以及,应用开启的情况下,电子设备在使用应用的过程中产生的内容(也可以被称为动态可搜索内容)。
其中,应用的静态可搜索内容中可以包括应用的静态功能数据。
应用的静态功能数据中包括:描述应用中各静态功能的各字段以及各字段对应的字段值。描述静态功能的各字段可以包括“标题”字段(指示静态功能名称)、“图标”字段(指示静态功能的图标地址)、“跳转链接”字段(用于打开静态功能对应的页面)等。图标地址可以用于找到图标。
其中,应用的静态功能是应用在安装之后,第一次开启之前应用中就具有的功能,该静态功能是应用中的固有功能,不会因为应用开启的页面不同而有所改变。
例如,“笔记”应用中的“新建笔记”功能、分享功能等都可以称为静态功能。描述“新建笔记”功能的各字段以及各字段对应的字段值、描述“分享”功能的各字段以及各字段对应的字段值以及其他静态功能数据(“笔记”应用中的)的各字段以及各字段对应的字段值即可以看作“笔记”应用的静态功能数据。再例如,“视频”应用中的播放历史查看功能等都称为静态功能。描述播放历史查看功能的各字段以及各字段对应的字段值即可以看作“视频”应用的静态功能数据中的内容。下述图3A-图3C示出了一种示例性静态功能,并且示出了电子设备将静态功能数据记录到索引信息中的示例图。关于静态功能数据的相关描述可以参考下述图3A-图3C,此处不再赘述。
应用的动态可搜索内容中可以包括应用的动态功能数据或者应用的业务数据等。
其中,应用的动态功能数据中包括了描述应用动态功能的各字段以及各字段对应的字段值。在一些可能的情况下,该动态功能数据中还可以包括该动态功能对应的垂域。描述动态功能的各字段可以包括“标题”字段(指示动态功能名称)、“图标”字段(指示动态功能图标地址)等。
应用的动态功能是在应用开启之后,在应用的使用过程中产生的功能,动态功能是随着应用开启的页面而产生的。该动态功能与前述涉及的静态功能都是应用的功能,但是动态功能与前述涉及的静态功能不同,静态功能在应用安装之后,第一次开启之前,应用中就具有的功能。但是,动态功能是在应用开启之后才产生的功能。
例如,在电子设备开启“笔记”应用的“新建笔记”功能新建笔记的情况下。新建笔记时涉及的页面中包括的功能(如“保存”功能、“撤回”功能等)即可以称为动态功能。再例如,在电子设备开启“视频”应用的播放页面时,该播放页面中包括的功能(如“暂停”功能等)即可以称为动态功能。下述图4A以及图4B示出了一种示例性动态功能,并且示出了电子设备将动态功能数据记录到索引信息中的示例图。关于动态功能数据的相关描述可以参考下述图4A以及图4B,此处不再赘述。
应用的业务数据是指基于应用的功能(包括静态功能以及动态功能)产生的数据。业务数据中可以包括描述该业务数据的各字段以及各字段对应的字段值。在一些可能的情况下,该业务数据中还可以包括该业务数据对应的垂域。
例如,基于“笔记”应用的“新建笔记”功能所生成的笔记。该笔记即可以看作“笔记”应用的业务数据。下述图5A-图5D示出了一种示例性业务数据,并且示出了电子设备将业务数据记录到索引信息中的示例图。关于业务数据的相关描述可以参考下述图5A-图5D,此处不再赘述。
这里应该理解的是,电子设备的动态可搜索内容以及静态可搜索内容中除了可以包括前述涉及的内容以外,还可以包括其他的内容,本申请实施例对此不做限定。例如,静态可搜索内容中还可以包括静态数据。其中,静态数据是指电子设备在下载应用之后,第一次启动应用之前,应用就已经具备的数据。
图3A-图3C示出了电子设备获得静态功能以及将静态功能数据记录到索引信息的示意图。
在一些可能的情况下,电子设备在安装应用时可以获得所安装应用的静态功能数据。然后,电子设备可以将静态功能数据记录到索引信息中。
下面以电子设备安装“视频”应用,并将该“视频”应用的静态功能所对应的静态功能数据记录到索引信息中为例进行说明。
如图3A所示,用户界面31为电子设备安装“视频”应用时涉及的示例性用户界面(页面)。用户界面32为电子设备完成“视频”应用安装之后涉及的一个示例性用户界面。在电子设备安装“视频”应用的过程中电子设备可以获取该“视频”应用对应的静态功能数据。然后,在“视频”应用完成安装之后,电子设备可以将该“视频”应用对应的静态功能数据记录到索引信息中。
图3B中(1)示出了“视频”应用中的部分静态功能。如图3B中(1)所示,用户界面33中,“视频”应用的静态功能可以包括“首页”功能、“历史播放”功能、“个人中心”功能,还可以包括“直播”功能、“推荐”功能等。
这里以“视频”应用的静态功能数据中包括描述“首页”功能、“历史播放”功能、“个人中心”功能等静态功能的字段值以及各字段对应的字段值为例,详细描述静态功能数据中的内容。
如图3B中(2)所示,为“视频”应用的一个示例性静态功能数据。其中包括了描述“首页”功能的各字段以及各字段对应的字段值、描述“历史播放”功能的各字段以及各字段对应的字段值、描述“个人中心”功能的各字段以及各字段对应的字段值。其中,“视频”应用中描述各静态功能的字段可以包括但不限于:“标题”字段(指示静态功能名称)、“描述”字段(指示静态功能的作用)、“图标”字段(指示静态功能的图标地址)、“跳转链接”字段(用于打开静态功能对应的页面)等字段。
这里需要说明的是,图3B中提及的图标地址A1可以为“首页”功能对应的图标地址,“首页”功能对应的图标地址可以用于基于地址找到“首页”功能的图标。图标地址A2以及图标地址A3可以分别用于找到“播放历史”功能的图标以及“个人中心”功能的图标。
在另一些可能的情况下,一个静态功能对应的图标地址可以不为该静态功能的图标的地址,还可以为该静态功能所在应用的图标的地址,用于找到该静态功能所在应用的图标。
在该“视频”应用完成安装的情况下,电子设备可以按照索引模板将该“视频”应用的静态功能数据记录到索引信息中。该过程可以参考下述对图3C的描述。
图3C中以电子设备将各静态功能的“标题”字段对应的字段值按照索引模板生成索引,并将该索引记录到索引信息中为例进行描述。其他字段对应的字段值记录到索引信息中的过程可以参考对图3C的描述,此处不再赘述。
如图3C所示,索引模板中记录了各字段以及各字段对应的属性。关于索引模板的相关描述可以参考前述内容,此处不再赘述。
以“标题”字段为例,该“标题”字段对应的索引构建方式为:“取字段值+预处理+分词+分词拼音+首字母拼音”。则电子设备基于静态功能数据中各“标题”字段的字段值建立索引时,索引中需要包括该字段值、该字段值的预处理结果、该字段值的分词结果、该字段值的拼音结果、该字段值的首字母拼音结果。如图3C所示,电子设备还可以将静态功能数据中各“标题”字段对应的各字段值以及各扩展值统一记录到“标题”字段的索引所对应位置。这里是以静态功能数据对应的垂域为“应用功能”垂域(垂域A)为例进行示例性展示的。
在一些可能的情况下,电子设备还可以生成各静态功能对应的文档(包括文档01、文档02、文档03),一个静态功能对应一个文档。一个静态功能对应的文档中记录了静态功能数据中描述该静态功能的各字段以及字段值。一个静态功能对应的文档可以与描述该静态功能的字段值以及字段值的扩展值相关联。
在索引信息记录到索引信息文件,且索引信息文件按照垂域划分了不同的索引信息子文件的情况下,电子设备可以将基于“视频”应用的静态功能数据所建立的索引以及文档记录到“应用功能”垂域对应的索引信息子文件中。例如,记录到“应用功能”垂域对应的索引信息子文件中的索引可以为如图3C所示的“应用功能”垂域对应的索引信息。
后续,电子设备还可以将基于其他应用的静态功能数据所建立的索引以及文档也记录到“应用功能”垂域对应的索引信息子文件中。
图3D-图3F示出了电子设备获得静态功能以及将静态功能数据记录到索引信息的另一个示意图。
下面以电子设备安装“笔记”应用,并将该“你急”应用的静态功能所对应的静态功能数据记录到“应用功能”垂域对应的索引信息子文件中为例进行说明。
如图3D所示,用户界面34为电子设备安装“笔记”应用时涉及的示例性用户界面。用户界面35为电子设备完成“笔记”应用安装之后涉及的一个示例性用户界面。在电子设备安装“笔记”应用的过程中电子设备可以获取该“笔记”应用对应的静态功能数据。然后,在“笔记”应用完成安装之后,电子设备可以将该“笔记”应用对应的静态功能数据记录到索引信息中。
图3E中(1)示出了“笔记”应用中的部分静态功能。如图3E中(1)所示,用户界面36中,“笔记”应用的静态功能可以包括“新建笔记”功能、“新建待办”功能等。
如图3E中(2)所示,为“笔记”应用的一个示例性静态功能数据。其中包括了描述“新建笔记”功能的各字段以及各字段对应的字段值、描述“新建点半”功能的各字段以及各字段对应的字段值。其中,“笔记”应用中描述各静态功能的字段可以包括但不限于:“标题”字段(指示静态功能名称)、“描述”字段(指示静态功能的作用)、“图标”字段(指示静态功能的图标地址)、“跳转链接”字段(用于打开静态功能对应的页面)等字段。
关于各字段以及字段值的含义可以参考前述对图3B中(2)的描述,此处不再赘述。
在该“笔记”应用完成安装的情况下,电子设备可以按照索引模板对该“笔记”应用的静态功能数据建立索引,并将建立的索引记录到“应用功能”垂域对应的索引信息子文件中。
如图3F所示,“应用功能”垂域对应的索引信息一个示意图。相比于图3C,“应用功能”垂域对应的索引信息中,新增加了基于“笔记”应用的静态功能数据建立索引和文档。
在索引信息记录到索引信息文件,且索引信息文件按照垂域划分了不同的索引信息子文件的情况下,电子设备可以将基于“笔记”应用的静态功能数据所建立的索引以及文档记录到“应用功能”垂域对应的索引信息子文件中。
图4A-图4B示出了电子设备基于应用产生动态功能以及将动态功能对应的动态功能数据记录到索引信息的示意图。
在一些可能的情况下,电子设备在开启应用之后,该应用可以产生动态功能。电子设备可以基于页面信息获取该动态功能对应的动态功能数据。然后,电子设备可以将动态功能数据记录到索引信息中。
以开启“设置”应用,基于该“设置”应用的蓝牙设置项产生动态功能,将该动态功能对应的动态功能数据记录到索引信息中为例进行说明。
如图4A所示,用户界面41为“设置”应用中蓝牙设置项对应的一个设置界面。响应于针对蓝牙功能开启控件411的操作,电子设备可以开启蓝牙功能。并显示用户界面42,该用户界面42中显示了电子设备在开启蓝牙功能之后,与其他设备之间建立了基于蓝牙的通信连接,该其他设备的名称为:“我的手机”。此处,电子设备与其他设备(例如名称为“我的手机”的设备)之间建立了基于蓝牙的通信连接就可以看作电子设备的一个动态功能。该动态功能对应的动态功能数据中可以包括“标题”字段(指示动态功能的内容)、“描述”字段(指示动态功能所起的作用、适用范围等)、“图标”字段(指示动态功能的图标地址)等字段。
其中,关于动态功能数据的相关描述还可以参考前述对静态功能数据的相关描述,只是描述一个动态功能的字段与描述一个静态功能的字段可以不同。基于各字段对应的字段值生成索引并将索引记录到索引信息中、以及建立文档的方式可以相同。
电子设备可以按照索引模板将该用户界面41中动态功能对应的动态功能数据记录到索引信息中,得到的索引信息可以参考下述图4B所示。其中,使用的索引模板可以参考前述图3C中示出的索引模板。
如图4B所示,“设置”应用产生的动态功能所述对应的动态功能数据对应的垂域为“设置”垂域(垂域B),以该动态功能数据中的“标题”字段为其他设备的名称(“我的手机”)、“描述”字段为“蓝牙”(指示蓝牙连接)为例进行示例性展示。针对“标题”字段,电子设备可以将动态功能数据中“标题”字段对应的各字段值以及各扩展值统一记录到““设置”应用”垂域对应的索引信息分片中。
在一些可能的情况下,电子设备还可以生成图4A中动态功能对应的文档(包括文档11),一个动态功能对应一个文档。在一些可能的情况下,一个动态功能对应的文档中记录了动态功能数据中描述该动态功能的各字段以及字段值。一个动态功能对应的文档可以与描述该动态功能的字段值以及字段值的扩展值相关联。
图5A-图5D示出了电子设备基于应用产生业务数据以及将业务数据记录到索引信息的示意图。
在一些可能的情况下,电子设备在使用应用的过程中可以产生业务数据。然后,将该业务数据记录到索引信息中。
下面以电子设备基于“笔记”应用产生笔记这一业务数据为例对该过程进行描述。
如图5A所示,用户界面51为“笔记”应用中的一个示例性笔记管理页面。该用户界面51示出了电子设备基于“笔记”应用生成了一个笔记(记为笔记1)。该笔记1可以看作由“笔记”应用产生的一个业务数据。描述该笔记1的字段可以包括:“标题”字段(指示笔记的标题)、“描述”字段(指示笔记的正文)以及“时间”字段(指示笔记的建立时间)等字段。其中,“标题”字段对应的字段值可以为:“去年工作总结”,“描述”字段对应的字段值可以为:“去年工作情况XX...”,“时间”字段对应的字段值可以为:“2022/12/308:00”。
电子设备可以按照索引模板将该“笔记”应用产生的笔记1记录到索引信息中。得到的索引信息可以参考下述图5B所示。
图5B中以电子设备将笔记1的“标题”字段对应的字段值按照索引模板生成索引,并将该索引记录到索引信息中为例进行描述。其他字段对应的字段值记录到索引信息中的过程可以参考对图5B的描述,此处不再赘述。
如图5B所示,索引模板中记录了各字段以及各字段对应的属性。关于索引模板的相关描述可以参考图3C中对索引模板的相关描述,此处不再赘述。
如图5B所示,电子设备可以将笔记1中“标题”字段对应的字段值以及扩展值统一记录到“标题”字段的索引所对应位置。这里是以笔记对应的垂域为“笔记”垂域(垂域C)为例进行示例性展示的。其中,“标题”字段对应的字段值以及扩展值是基于索引模板得到的。
在一些可能的情况下,电子设备还可以生成笔记1对应的文档(文档21),一个笔记对应一个文档。文档21中记录了笔记1中描述该笔记1的各字段以及字段值。文档21可以与描述该笔记1的字段值以及字段值的扩展值相关联。
后续,电子设备可以将通过该“笔记”应用新建的其他笔记也记录到该“笔记”垂域对应的索引信息分片中。关于该过程可以参考下对图5C以及图5D的描述。
如图5C所示,用户界面52以及用户界面53为电子设备通过该“笔记”应用新建笔记时涉及的一个示例性用户界面。该用户界面52示出了电子设备基于“笔记”应用又生成了一个笔记(记为笔记2)。该笔记2可以看作由“笔记”应用产生的一个业务数据。描述该笔记2的字段可以包括:“标题”字段(指示笔记的标题)、“描述”字段(指示笔记的正文)以及“时间”字段(指示笔记的建立时间)等字段。其中,“标题”字段对应的字段值可以为:“今年工作计划”,“描述”字段对应的字段值可以为:“今年预计XX”,“时间”字段对应的字段值可以为:“2023/1/1 8:00”。
电子设备可以按照索引模板将该“笔记”应用产生的笔记2记录到索引信息中。得到的索引信息可以参考下述图5D所示。
图5D中以电子设备将笔记2的“标题”字段对应的字段值按照索引模板生成索引,并将该索引记录到索引信息中为例进行描述。笔记2的其他字段对应的字段值记录到索引信息中的过程可以参考对图5D的描述,此处不再赘述。
如图5D所示,索引模板中记录了各字段以及各字段对应的属性。关于索引模板的相关描述可以参考图3C中对索引模板的相关描述,此处不再赘述。
如图5D所示,电子设备可以将笔记2中“标题”字段对应的字段值以及扩展值统一记录到“标题”字段的索引所对应位置。这里是以笔记对应的垂域为“笔记”垂域(垂域C)为例进行示例性展示的。其中,“标题”字段对应的字段值以及扩展值是基于索引模板得到的。
在一些可能的情况下,电子设备还可以生成笔记2对应的文档(文档22),一个笔记对应一个文档。文档22中记录了笔记2中描述该笔记2的各字段以及字段值。文档22可以与描述该笔记2的字段值以及字段值的扩展值相关联。
这里应该理解的是,不同垂域所对应索引信息中的索引可以来自相同的应用。例如,“应用功能”垂域对应的索引信息分片中可以包括“笔记”应用为电子设备提供的各功能数据对应的索引。“笔记”垂域对应的索引信息分片中可以包括“笔记”应用产生的笔记对应的索引。
还应用理解的是,不同垂域对应的索引信息中,可以包括相同的字段(公共字段)。例如,结合前述图3C以及图5B可知,“应用功能”垂域,以及“笔记”垂域中可以包括“标题”字段、“描述”字段等公共字段。
电子设备可以基于前述涉及的索引信息进行实现本地搜索功能。
图6A以及图6B示出了电子设备基于索引信息进行实现本地搜索功能的示意图。
如图6A所示,电子设备开启搜索应用,获取输入的查询内容。然后,电子设备基于索引信息执行搜索。搜索过程是基于查询内容在索引信息中进行搜索完成的,是一个单线程搜索。在进行搜索时,电子设备还可以基于索引信息按照垂域进行搜索,实现多垂域同时搜索得到搜索结果,该搜索结果可以覆盖各垂域中与查询内容相匹配的应用内容。例如,电子设备可以基于查询内容在“应用功能”垂域对应的索引信息分片中进行搜索得到“应用功能”垂域中与查询内容相匹配的内容。同时,电子设备还可以基于查询内容在“笔记”垂域对应的索引信息分片中进行搜索得到“笔记”垂域中与查询内容相匹配的内容。
在一些可能的情况下,在搜索结果为文档时,电子设备将查询内容与各垂域对应的索引信息分片中的索引进行匹配确定匹配成功的字段值和扩展值时,可以返回匹配成功的字段值和扩展值所关联的文档(匹配文档)。然后,按照垂域对各匹配文档进行聚合,将记录在同一垂域对应的索引信息分片中的文档聚合为一组,得到各垂域对应的匹配文档(搜索结果)。在对各垂域对应的匹配文档进行相关性分析,确定各垂域对应的相关性符合要求的匹配文档(搜索结果)。
后续,将各垂域对应的相关性符合要求的搜索结果进行显示。如图6B所示,在进行显示时,可以将同一个垂域对应的相关性符合要求的各搜索结果中部分或者全部字段对应的字段值显示在一个展示框中。展示框中还可以包括垂域名称。通常来说,一个搜索结果中的“图标”字段对应的字段值(图标)与该搜索结果中其他字段对应的字段值在显示框中显示时呈现前后关系,而不是上下关系。这样,可以基于图标突出其他字段对应的字段值所来自的应用或者服务等。
图7A-图7E示出了电子设备按照垂域对搜索结果进行显示的示例性用户界面。
如图7A为电子设备开启搜索应用提供的本地搜索功能时涉及的一个示例性图。如图7A中(1)所示,用户界面70为电子设备的一个桌面。用户界面70中包括页面指示符701。该页面指示符701中包括至少一个圆圈图标以及一个其他形状图标。其中,每一个圆圈图标都对应指示一个桌面。该其他图标可以指示负一屏页面。电子设备显示用户界面70时,该页面指示符701中最靠近其他形状图标的圆圈图标(圆圈图标1)被选中以提示当前显示的用户界面70为首个桌面。
响应于针对用户界面70的操作,例如滑动方向为从其他形状图标指向圆圈图标1的滑动操作,电子设备开启搜索应用提供的本地搜索功能。
如图7A中(2)所示,用户界面71为电子设备的一个包含本地搜索功能的示例性界面。该用户界面71中包括搜索框711。该搜索框711中还显示了提示信息以提示用户可以在搜索框711中输入查询内容。例如,该提示信息可以为:“搜索应用和服务”。
电子设备可以基于该搜索框711接收用户输入的查询内容,然后基于该查询内容进行搜索。
如图7B中(1)所示,用户界面72中显示的搜索框711中包括输入的查询内容721a:“笔记计画”。响应于针对搜索控件的操作,电子设备可以基于查询内容721a在索引信息中进行搜索以得到该查询内容721a(“笔记计画”)的搜索结果。
回顾前述图5A、图5C以及针对图5A、图5C的相关描述可以知道。查询内容721a(“笔记计画”)的搜索结果中可以“应用功能”垂域中“新建笔记”功能对应的文档,以及“笔记”应用中“今年工作计划”这一笔记对应的文档。
如图7B中(2)所示,用户界面73为按照垂域对搜索结果进行显示时涉及的一个示例性用户界面。展示框731中可以包括“应用功能”垂域中各匹配文档的部分字段对应的字段值,例如“新建笔记”功能对应的文档中部分字段对应的字段值。展示框732中可以包括“笔记”垂域中各匹配文档的部分字段对应的字段值,例如“今年工作计划”这一笔记对应的文档中部分字段对应的字段值。
关于电子设备基于前述涉及的索引信息进行实现本地搜索功能的详细内容可以参考下述对图17中步骤S101-步骤S111的描述,此处暂不赘述。
在一些可能的情况下,索引信息中在记录了各应用的业务数据、动态功能数据以及静态功能数据的情况下。可以实现基于查询内容在各应用处于关闭状态的情况下,基于索引信息搜索各应用的业务数据、动态功能数据以及静态功能数据。
图7C示出了电子设备对应用的业务数据进行搜索时涉及的一个示例性用户界面。
以电子设备没有开启该“笔记”应用,也可以在索引信息中对“笔记”应用中的笔记进行搜索为例。
如图7C所示,用户界面74为基于查询内容741a(“今年工作计划”)在索引信息中进行搜索得到搜索结果,并对搜索结果进行显示时的示例性用户界面。该用户界面74中可以包括展示框741,该展示框741中包括“笔记”垂域中匹配文档的部分字段对应的字段值。例如,匹配文档可以为“今年工作计划”这一笔记对应的文档。
其中,关于建立“笔记”应用中各笔记对应的文档以及索引的相关内容可以参考前述对图5A-图5D的描述,此处不再赘述。
图7D示出了电子设备对应用的动态功能进行搜索时涉及的一个示例性用户界面。
以电子设备没有开启该“设置”应用,也可以在索引信息中对“设置”应用中的动态功能进行搜索为例。
如图7D所示,用户界面75示出了基于查询内容751a(“我的手机”)在索引信息中进行搜索得到搜索结果,并对搜索结果进行显示时的示例性用户界面。该用户界面75中可以包括展示框751,该展示框751中包括“设置”垂域中各匹配文档的部分字段对应的字段值。例如,匹配文档可以包括电子设备与其他设备(例如名称为“我的手机”)之间建立了基于蓝牙的通信连接这一动态功能对应的文档。
其中,关于建立“设置”应用中各动态功能对应的文档以及索引的相关内容可以参考前述对图4A-图4B的描述,此处不再赘述。
图7E示出了电子设备对应用的静态功能进行搜索是涉及的一个示例性用户界面。
以电子设备没有开启“笔记”应用,也可以在索引信息中对“笔记”应用中的静态功能进行搜索为例。
如图7E所示,用户界面76示出了基于查询内容761a(“新建待办”)在索引信息中进行搜索得到搜索结果,并对搜索结果进行显示时的示例性用户界面。该用户界面76中可以包括展示框761,该展示框761中包括“笔记”垂域中匹配文档的部分字段对应的字段值或者基于字段值确定内容。例如,匹配文档可以为“新建待办”这一静态功能对应的文档,电子设备可以基于“新建待办”功能对应的文档显示“新建待办”功能的名称、描述、图标等内容。其中,该“新建待办”功能的图标是基于“新建待办”功能所对应文档中“新建待办”功能对应的图标地址(“图标”字段的字段值)确定的。电子设备可以基于“新建待办”功能对应的图标地址找到“新建待办”功能对应的图标进行显示。这里“新建待办”功能对应的图标可以为“新建待办”功能的图标。在一些可能的情况下,还可以为“新建待办”功能所在应用的图标。
其中,关于建立“笔记”应用中各静态功能对应的文档以及索引的相关内容可以参考前述对图3D-图3F的描述,此处不再赘述。
在一些可能的情况下,电子设备可以将前述涉及的基于索引模板构建索引、记录索引到索引信息的方法、以及使用索引信息进行搜索时涉及的指令集成在搜索服务应用中,其他应用可以调用该搜索服务应用进行索引构建与存储、以及使用索引信息进行搜索。
电子设备可以采取不同的方式获取从应用中获取静态可搜索内容以及动态可搜索内容,然后通过搜索服务应用为该静态可搜索内容以及动态可搜索内容生成对应的索引,并将索引同一记录到索引信息。
图8示出了电子设备基于静态可搜索内容以及动态可搜索内容生成索引的示例性方式。
对于应用的静态可搜索内容,其应当属于应用的属性。在电子设备下载并安装应用之后,如果应用的版本号没有改变,则该静态可搜索内容不会发生改变。因此,如图8中(1)所示,可以在安装应用的过程中,通过搜索配置文件的方式获取应用的静态可搜索内容(例如静态功能数据、静态数据等),然后基于该静态可搜索内容构建索引,并且将该索引记录到索引信息中。
下面以静态可搜索内容为静态功能数据为例,详细描述通过搜索配置文件的方式获取应用的静态可搜索内容的过程。
应用在开发的过程中,可以将静态功能数据作为扩展的字段信息写入到应用的搜索配置文件中。该搜索配置文件为应用提供的xml格式的文件,在将扩展的字段信息写入到该搜索配置文件之前,该搜索配置文件中就定义了应用在系统中支持搜索时所需的搜索配置信息。例如,搜索配置文件中配置了该应用可以被搜索到的搜索配置信息,使得在本地搜索服务提供的搜索框中输入应用名称则可以返回该应用(如返回应用的图标或者应用的名称指示应用)。在一些可能的情况下,该应用可以被搜索到的搜索配置信息包括将android:includeInGlobalSearch项设为true。应用在安装的过程中,电子设备可以获取该搜索配置文件之后,进一步获取其中的搜索配置信息以用于实现应用可以通过本地搜索服务被搜索到。
在将扩展的字段信息写入到该搜索配置文件之后,在应用的安装包中获取到该配置文件信息(包括扩展的字段信息)之后,电子设备还可以进一步读取该搜索配置文件中扩展的字段信息。并将该字段信息记录到应用对应的搜索信息中。后续,在完成安装之后,电子设备可以发送应用安装完成的广播触发电子设备获取该搜索信息中的字段信息。由于字段信息表示的是静态功能数据,到这里,可以认为电子设备从应用的安装包中获取到了静态功能数据。
然后,电子设备通过搜索服务应用基于该字段信息建立静态功能数据对应的索引。并将该索引记录到索引信息中。例如,电子设备可以将该静态功能数据对应的索引记录到“应用功能”垂域对应的索引信息分片中。
在一些可能的情况下,在建立静态功能数据对应的索引时还可以建立静态功能数据对应的文档。并将该索引和文档记录到索引信息中。例如,电子设备可以将该静态功能数据对应的索引和文档记录到“应用功能”垂域对应的索引信息分片中。
关于通过搜索配置文件建立索引以及文档的详细过程还可以参考图11中对步骤S10-步骤S22的描述,此处不再赘述。
对于应用的动态可搜索内容,其是在电子设备开启应用之后在应用中产生的。由于产生动态可搜索内容时应用属于开启状态。因此,如图8中(1)所示,可以通过在应用中配置索引构建接口的方式,使得应用通过该配置接口将动态可搜索内容(例如动态功能数据、业务数据等)中的各字段以及各字段值传输到搜索服务应用中。使得搜索服务应用可以建立动态可搜索内容对应的索引,并将该索引记录到索引信息中。例如,在动态可搜索内容为动态功能数据时,电子设备可以将该动态功能数据对应的索引记录到“应用功能”垂域对应的索引信息分片中。
在一些可能的情况下,在建立动态功能数据对应的索引时还可以建立动态功能数据对应的文档。并将该索引和文档记录到索引信息中。例如,在动态可搜索内容为动态功能数据时,电子设备可以将该动态功能数据对应的索引和文档记录到“应用功能”垂域对应的索引信息分片中。
在一些可能的情况下,初始的索引模板中记录的字段是系统字段,该索引模板中也记录了该系统字段对应的属性。但是应用产生的动态可搜索内容中除了包括系统字段以外,还可以包括其他字段(自定义字段),该自定义字段在索引模板中没有对应的属性。因此需要应用为其进行定义属性。为自定义字段定义属性的功能可以通过在应用中配置字段定义接口实现。
在一些可能的情况下,自定义字段也可以被称为新增字段。
关于通过配置接口建立索引以及文档的详细过程还可以参考图13中对步骤S30-步骤S35的描述,此处不再赘述。
在一些可能的情况下,对于未配置索引构建接口的应用。电子设备还可以提供其他的方式获取该应用的动态可搜索内容以传输至搜索服务应用。如图8中(2)所示,电子设备提供了通过数据库插装的方式获取应用的动态可搜索内容。然后传输到搜索服务应用中建立动态可搜索内容对应的索引,并将该索引记录到索引信息中。
其中,数据库是指应用对应的数据库,电子设备在通过应用生成动态可搜索内容之后会将该动态可搜索内容写入到该应用对应的数据库中。数据库插装的方式可以用于监听到数据库发送了变化,并且确定动态可搜索内容写入到数据库中的位置。该写入到数据库中的位置可以用于电子设备通过该位置从数据库中获取动态可搜索内容。
例如,电子设备可以为“短信”应用设置数据库插装的方式,在“短信”应用中新建了一条短信并将该新建短信记录到“短信”应用对应的数据库时,电子设备可以监听到“短信”应用对应的数据库发送了变化,并且确定该新建短信写入到数据库中的位置。电子设备可以通过该位置从“短信”应用对应的数据库中获取新建短信。然后传输到搜索服务应用中建立该新建短信对应的索引,并将该索引记录到索引信息中。
关于通过数据库插装的方式建立索引以及文档的详细过程还可以参考图15中对步骤S40-步骤S46的描述,此处不再赘述。
下面描述生成索引信息以及基于索引信息进行搜索时涉及的示例性软件结构框架。
图9示出了生成索引信息以及基于索引信息进行搜索时涉及的示例性软件结构框架。
如图9所示,分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将系统分为四层,从上至下分别为应用程序层,应用程序框架层,运行时(Runtime)和系统库(未示出),以及内核层(未示出)。
应用程序层可以包括一系列应用程序包。
如图9所示,应用程序包可以包括“honor搜索”应用、“设置”应用、“系统管家”应用、“笔记”应用等应用程序(也可以称为应用)。
“honor搜索”应用可以用于提供本地搜索功能。“honor搜索”应用可以用于接收用户输入的查询内容,并基于查询内容调用搜索服务应用完成搜索。
应该理解的是,其他可以实现应用内搜索的应用也可以调用该“搜索服务”应用实现搜索。
应用程序层的部分应用中可以包括搜索配置文件以及清单文件,或者,索引构建接口。包括索引构建接口的应用还可以包括字段自定义接口。例如,“系统管家”应用中可以包括搜索配置文件以及清单文件。“笔记”应用中可以包括字段自定义接口以及索引构建接口。
其中,应用中的清单文件可以用于声明该应用中所包括文件的信息(文件名称和路径等)。基于该清单文件可以读取应用中的其他文件。例如,该清单文件中可以记录搜索配置文件的名称和路径等信息,其他模块可以通过清单文件获取搜索配置文件。
应用中的搜索配置文件中配置了该应用可以被搜索到的搜索配置信息。
搜索配置文件还可以用于在通过搜索配置文件建立索引时,记录应用中扩展的字段信息(代表应用的静态可搜索内容)。关于扩展的字段信息以及搜索配置文件的相关内容可以参考前述内容中的描述。此处不再赘述。
索引构建接口可以用于在通过配置接口建立索引时,支持应用将动态可搜索内容(例如动态功能数据、业务数据等)中的各字段以及各字段值传输到搜索服务应用中。
字段定义接口可以用于在通过配置接口建立索引时,执行应用为动态可搜索内的自定义字段定义属性。
在一些可能的情况下,字段定义接口还可以用于将各自定义字段对应的属性记录到索引模板中。
应用程序包中还可以包括搜索服务应用。
该搜索服务应用中可以包括实现构建与记录索引、使用索引信息进行搜索时所涉及的功能模块以及数据。
其中,用于索引构建与记录的数据可以包括索引模板以及索引信息文件。该索引模板可以用于生成索引,该索引信息文件可以用于存储索引信息。在一些可能的情况下,索引信息文件中的索引信息可以按照垂域进行划分得到各垂域对应的索引信息分片。例如垂域可以包括“应用功能”垂域、“联系人”垂域、“图库”垂域、“笔记”垂域等垂域中的一个或者多个,本申请实施例对此不作限定。其中,关于索引模板以及索引信息的详细描述可以参考前述对索引模板的介绍,此处不再赘述。
用于索引构建以及记录的功能模块可以包括事件触发器、搜索信息获取模块、索引管理模块以及索引管理模块等。
其中,事件触发器可以用于在通过搜索配置文件建立索引时,接收应用安装完成的广播,并且在接收到应用安装完成的广播之后触发搜索信息获取模块执行。
搜索信息获取模块可以用于在通过搜索配置文件建立索引时,获取所安装应用对应的搜索信息(记录了应用中扩展的字段信息),然后将该搜索信息发送至索引管理模块。
在一些可能的情况下,索引管理模块中可以索引构建模块以及索引存储模块。
其中,索引构建模块可以用于从包含了字段以及字段值的文件中获取字段以及字段值并基于索引模板建立字段值对应的索引。
索引构建模块可以调用下述索引存储模块对索引进行存储。
索引存储模块可以用于将索引记录到索引信息中。
应用程序层中可以包括应用管理器、资源获取模块、扩展字段存储模块、搜索管理器、数据库管理器以及索引构建通知模块。
其中,应用管理模块可以用于管理应用的安装以及卸载等。
该应用管理模块还可以在应用安装的过程中调用资源获取模块获取应用的资源。例如,获取应用的搜索配置文件等资源。
资源获取模块可以用于在应用安装的过程中获取应用的搜索配置文件,并读取其中的扩展字段。
扩展字段存储模块可以用于被资源获取模块调用,执行将扩展的字段信息记录到搜索信息中。
搜索管理器可以用于被搜索信息获取模块调用后获取搜索信息。然后将搜索信息发送至搜索信息获取模块。
数据库管理器可以用于在通过数据库插装的方式建立索引时,监听应用对应的数据库是否发生修改。在检测到数据库发生写入动态可搜索内容时,向索引构建通知模块发送应用在数据库中写入位置的标识。数据库中每一行数据都具有一个唯一标识,该写入位置的标识即为写入行具有的标识。
索引构建通知模块可以用于在接收到应用在数据库中写入位置的标识之后,基于该标识从应用对应的数据库获取动态可搜索内容。然后获取该可搜索内容中的字段以及字段值得到字段列表,将该字段列表发送至索引构建模块建立索引。
如图9所示,这里是以将索引模板以及索引信息分开存储在搜索服务应用中为例进行说明的索引模板和索引信息作用不同,使用场景不同:索引模板的目的在于定义索引信息生成的规则,索引信息的目的在于记录索引,便于搜索。分开存储便于索引模板和索引信息的管理与使用。
图10示出了通过搜索配置文件建立并记录索引的示例性软件结构框架以及处理流程。
电子设备通过搜索配置文件建立静态可搜索内容对应的索引并记录该索引的过程可以参考对图10中步骤1-步骤8的描述。
图10中步骤1,电子设备下载应用1之后,应用管理器可以负责安装该应用1。其中,图10中步骤1即图10中的圆圈标识①。
图10中步骤2,应用管理器在安装应用的过程中,通知资源获取模块获取应用1安装包中的搜索配置文件。其中,图10中步骤2即图10中的圆圈标识②。
图10中步骤3,资源管理器获取搜索配置文件(应用1的)中扩展的字段信息并记录字段信息到可搜索信息中。其中,图10中步骤3即图10中的圆圈标识③。
图10中步骤4,应用管理器在完成应用1的安装之后,发送应用1安装完成的广播。其中,图10中步骤4即图10中的圆圈标识④。
图10中步骤5,事件触发其接受到该安装完成的广播之后,触发搜索信息获取模块执行。其中,图10中步骤5即图10中的圆圈标识⑤。
图10中步骤6,搜索信息获取模块被触发执行之后,调用搜索管理器获取搜索信息,并读取搜索信息中应用1对应的字段信息。其中,图10中步骤6即图10中的圆圈标识⑥。
图10中步骤7,搜索信息获取模块向索引管理模块发送应用1对应的字段信息。其中,图10中步骤7即图10中的圆圈标识⑦。
图10中步骤8,索引管理模块获取可搜索信息中应用1对应的字段信息,基于字段信息构建并存储索引,该索引包括应用1中各静态功能数据对应的索引。其中,图10中步骤8即图10中的圆圈标识⑧。
这里应该理解的是,图10中步骤8中,在一些可能的情况下,索引管理模块除了建立各静态功能数据对应的索引以外,还可以建立静态功能数据对应的文档。并将该索引和文档记录到索引信息中。
下面结合上述图9以及图10涉及的软件结构框图,详细描述电子设备通过搜索配置文件建立并记录索引以及文档时,内部各模块之间的交互流程。
图11示出了通过搜索配置文件建立并记录索引以及文档时内部各模块之间的示例性交互流程。
电子设备通过搜索配置文件建立静态可搜索内容对应的索引并记录该索引的过程可以参考对图11中步骤S10-步骤S22的描述。
S10.应用管理器基于应用1的安装包对应用1进行安装。
应用1为在开发的过程中,将静态可搜索内容作为扩展的字段信息写入到应用1的搜索配置文件中的应用。例如,“联系人”应用、“信息”应用、“视频”应用、“设置”应用等,本申请实施例对此不作限定。
应该理解的是,该静态可搜索内容可以包括静态功能数据或者其他静态数据等。本申请实施例对此不作限定。关于搜索配置文件、静态功能数据等内容的描述可以参考前述相关内容,此处不再赘述。
下文中以应用1的静态可搜索内容为应用1的静态功能数据为例进行描述。其中,应用1的静态功能数据中可以包括描述应用1中各静态功能的字段以及各字段对应的字段值。描述该应用1中不同静态功能的字段和字段值可以作为一组数据记录在该扩展的字段信息中。
S11.应用管理器调用资源获取模块基于安装包中的清单文件获取安装包中的搜索配置文件。
步骤S11中的清单文件为应用1对应的清单文件。
搜索配置文件中定义了应用1在系统中支持搜索时所需的搜索配置信息。该搜索配置文件中还可以包括描述应用1中静态功能的字段信息。
该应用1对应的清单文件可以用于声明应用1中所包括文件的信息(文件名称和路径等)。基于该清单文件可以读取应用中的其他文件。例如,该清单文件中可以记录搜索配置文件的名称和路径等信息。
资源获取模块可以通过应用1对应的清单文件确定搜索配置文件的路径。然后基于该搜索配置文件的路径从应用1的安装包中获取应用1对应的搜索配置文件。
S12.资源获取模块读取搜索配置文件中扩展的字段信息。
步骤S12中示出的字段信息为应用1的字段信息。例如,在应用1为“视频”应用的情况下,应用1的搜索配置文件中记录的字段信息(表示静态功能数据)可以参考前述对图3B的描述。
在一些可能的情况下,搜索配置文件中扩展的字段信息包括各静态功能的字段和字段值。资源获取模块中配置了读取字段信息的能力,可以从应用1的搜索配置文件中找到应用1的字段信息,并读取该应用1的字段信息。
S13.资源获取模块将字段信息记录到搜索信息中。
步骤S13中涉及的字段信息为应用1的字段信息。
该搜索信息可以用于记录电子设备中各应用的字段信息。不同字段信息与一个应用相对应。
资源获取模块将字段信息记录到搜索信息中,且该字段信息与应用1对应。例如,资源获取模块可以用应用1的唯一标识与该应用1的字段信息对应。
这里应该理解的是,前述涉及的步骤S10-步骤S13是在应用1安装过程中执行的。在一些可能的情况下,资源获取模块可以调用searchableinfo类执行步骤S11-步骤S13。在执行步骤S13时,资源获取模块可以将应用1的字段信息记录到searchableinfo类的搜索信息中,该搜索信息中可以包括至少一个用于记录应用数据的对象。例如,可以包括msearchableinfo()对象,该应用1的字段信息即可以记录到msearchableinfo()对象中。
在应用1安装完成后,可以执行下述步骤S14-步骤S22。
S14.应用管理器发送应用1安装完成的广播。
该应用1安装完成的广播中携带了应用1的标识。
S15.事件触发器接收到广播。
事件触发器接收到安装完成的广播之后,可以执行下述步骤S16触发搜索信息获取模块执行。
S16.事件触发器触发搜索信息获取模块执行。
事件触发器向搜索信息获取模块发送应用1安装完成的通知以触发搜索信息获取模块执行。该通知中携带了应用1的标识以使得搜索信息获取模块确定被安装的应用为应用1。
S17.搜索信息获取模块调用搜索管理器获取搜索信息。
在搜索信息获取模块被触发执行之后,该搜索信息获取模块可以调用搜索管理器获取搜索信息。
S18.搜索管理器获取搜索信息。
搜索管理器位于应用程序框架层,该搜索管理器用于管理并获取电子设备中的搜索信息。
S19.搜索管理器向搜索信息获取模块发送搜索信息。
在搜索管理器获取搜索信息之后,可以向搜索服务应用中的搜索信息获取模块发送该搜索信息。
S20.搜索信息获取模块读取搜索信息中应用1对应的字段信息。
搜索信息获取模块基于应用1对应的标识从搜索信息中读取应用1对应的字段信息。
S21.搜索信息获取模块向索引管理模块发送应用1对应的字段信息。
S22.索引管理模块基于应用1对应的字段信息构建索引和文档,得到索引集合1和文档集合1,确定索引集合1和文档集合1对应垂域1,并将索引集合1和文档集合1按照垂域1记录到索引信息文件中。
在应用1对应的字段信息为图3B示出了“视频”应用的字段信息时,索引管理模块基于应用1对应的字段信息得到的索引集合1和文档集合1可以参考前述图3C。
索引管理模块中的索引构建模块可以基于应用1对应的字段信息构建索引和文档,得到索引集合1和文档集合1,并确定索引集合1和文档集合1对应垂域1。该过程可以参考下述内容。这里垂域1可以表示为记录基于静态功能数据所构建索引的索引信息子文件的名称。
这里以应用1对应的字段信息中包括描述各静态功能(应用1的)的字段和字段值为例进行说明。
该索引集合1中包括各静态功能(应用1的)对应的索引。其中,一个静态功能对应的索引包括字段信息(应用1对应的)中描述该静态功能的各字段值对应的索引。一个字段值对应的索引包括该字段值本身以及该字段值的扩展值。
该文档集合1中包括各静态功能对应的全部文档。一个文档对应一个静态功能。一个文档对应的静态功能是指该文档中各字段和各字段值所描述的静态功能。
索引构建模块分别基于字段信息(应用1对应的)中各静态功能对应的字段和字段值,按照索引模板生成各静态功能对应的索引,并且,分别基于各静态功能对应的字段和字段值生成文档,得到各静态功能对应的文档。其中,一个静态功能对应的字段和字段值是指描述一个静态功能的各字段和各字段值。
索引构建模块可以将一个静态功能对应的索引与该静态功能对应的文档相关联。关联的方式可以包括:为该静态功能对应的文档、该静态功能对应的索引中各字段值,以及各字段值的扩展值设置相同的标识号,使得电子设备可以通过字段值或者扩展值的标识号找到相同标识号的文档。
例如,字段信息中包括静态功能1对应的字段和字段值,索引构建模块生成该静态功能1对应的索引和文档包括:分别基于静态功能1对应的各字段和各字段值按照索引模板生成各字段值对应的索引,得到静态功能1对应的索引。并且,基于描述静态功能1的各字段和各字段值生成该静态功能1对应的文档。该静态功能1对应的文档中包括描述静态功能1的各字段和各字段值,且,静态功能1对应的文档与描述该静态功能1的各字段值对应的索引相关联。
其中,静态功能1对应的字段值包括字段值1,索引构建模块按照索引模板生成该字段值1对应的索引包括:从索引模板中获取字段值1所对应字段的索引构建方式(记为索引构建方式1),按照索引构建方式1基于字段值1生成字段值1对应的索引。该字段值1对应的索引包括该字段值1本身以及字段值1的扩展值。
其中,关于索引模板以及字段对应的索引构建方式的内容可以参考前述相关内容的描述,此处不再赘述。
应该理解的是,一个文档中的字段类型是唯一的。例如,一个文档中只包括一个“标题”字段、一个“描述”字段。
索引管理模块中记录了不同类型的可搜索内容对应的垂域。在确定待建立索引的可搜索内容为字段信息的情况下,索引管理模块可以确定索引集合1和文档集合1对应垂域1。例如,该垂域1可以为“应用功能”垂域。
索引管理模块中的索引存储模块可以将索引集合1和文档集合1按照垂域1记录到索引信息文件中。该过程可以参考下述内容。
索引存储模块可以将该索引集合1以及文档集合1记录到索引信息文件中垂域1对应的索引信息分片中。在一些可能的情况下,在垂域1为记录基于静态功能数据所构建索引的索引信息子文件(静态功能子文件)的名称时,索引存储模块基于文件路径1找到静态功能子文件,并将索引集合1以及文档集合1记录到静态功能子文件中。该文件路径1中包括该静态功能子文件的名称。该静态功能子文件即可以看作垂域1对应的索引信息分片。该文件路径1可以看作静态功能子文件对应的路径。文件路径1可以用于找到静态功能子文件。
在一些可能的情况下,步骤S22中,将索引集合1和文档集合1按照垂域1记录到索引信息文件中这一操作是可选的。索引信息文件中也可以不按照垂域划分索引信息。索引存储模块将索引集合1和文档集合1记录到索引信息文件中即可。
这里需要说明的是,应用1的搜索配置文件中的字段以及字段对应的字段值描述的是应用1在安装之后,第一次启动之前就具有的可搜索内容。例如可以为应用1在安装之后,第一次启动之前就具有的功能。可以将搜索配置文件中的字段描述的功能称为静态功能。
这里应该理解的是,步骤S22中是以建立索引的同时还建立文档进行说明的。步骤S22是可选的。搜索过程中,在确定一个与查询内容匹配成功的字段值或者扩展值时,召回该字段值或者扩展值所关联文档的情况下,可以执行步骤S22。
在另一些可能的情况下,在确定一个与查询内容匹配成功的字段值或者扩展值时,召回其他内容(例如字段值)的情况下。可以不执行步骤S22。执行下述步骤即可。
索引管理模块基于应用1对应的字段信息构建索引,得到索引集合1,确定索引集合1对应垂域1,并将索引集合1按照垂域1记录到索引信息文件中。关于构建索引集合1以及记录到索引信息文件的描述可以参考前述步骤S22中相关内容的描述,此处不再赘述。
还应该理解的是,上述步骤S14-步骤S22是在应用安装完成之后执行的。实际应用中可以不执行步骤S14,改为执行发送应用1开始安装的广播。这样,在应用1安装过程即可以执行步骤S15-步骤S20。
这里在应用1按照完成后才将应用1对应的索引和文档记录到索引信息文件的目的在于:防止应用1开始安装之后,安装完成之前就被暂停安装并删除的情况下,就将应用1对应的索引和文档记录到索引信息文件中,但是电子设备中并没有安装应用1。会出现可以搜索应用1的功能但是不能执行的问题。
图12示出了通过配置接口建立并记录索引的示例性软件结构框架以及处理流程。
电子设备通过配置接口建立动态可搜索内容对应的索引并记录该索引的过程可以参考对图12中步骤1-步骤5的描述。
图12中步骤1,应用2中产生可搜索内容1。其中,图12中步骤1即图12中的圆圈标识①。
图12中步骤2,通过字段定义接口为可搜索内容1中的自定义字段定义属性。其中,图12中步骤2即图12中的圆圈标识②。
图12中步骤3,索引构建接口基于可搜索内容1中的各字段以及各字段对应的字段值生成字段列表1。其中,图12中步骤3即图12中的圆圈标识③。
图12中步骤4,索引构建模块基于该字段列表1构建索引(可搜索内容1对应的索引)。其中,图12中步骤4即图12中的圆圈标识④。
图12中步骤5,索引存储模块将构建执行索引存储,记录到索引信息文件中。其中,图12中步骤5即图12中的圆圈标识⑤。
这里应该理解的是,图12中步骤4中,在一些可能的情况下,索引构建模块除了建立可搜索内容1对应的索引以外,还可以建立可搜索内容1对应的文档。并将该索引和文档记录到索引信息中。
下面结合上述图9以及图12涉及的软件结构框图,详细描述电子设备通过配置接口建立并记录索引以及文档时,内部各模块之间的交互流程。
图13示出了配置接口建立并记录索引以及文档时内部各模块之间的示例性交互流程。
电子设备通过配置接口建立动态可搜索内容对应的索引并记录该索引的过程可以参考对图13中步骤S30-步骤S35的描述。
S30.应用2的数据获取模块获取可搜索内容1。该可搜索内容1为应用2开启的过程中产生的动态可搜索内容。例如,可以为基于应用2产生的业务数据,也可以为基于应用2产生的动态功能数据。
响应于在应用2中的输入操作,应用2的数据获取模块可以基于输入的内容得到可搜索内容1。该输入操作可以是新建内容的操作。例如,在应用2为前述涉及的“笔记”应用的情况下,响应于用户新建笔记的操作,“笔记”应用的数据获取模块可以基于新建笔记得到可搜索内容1,该可搜索内容1中可以包括新建笔记中的字段值以及字段值对应的字段。
S31.应用2的字段定义接口为可搜索内容1中的自定义字段定义其对应的属性。
该步骤S31是可选的。
在一些可能的情况下,字段定义接口可以为各自定义字段定义其对应的属性。例如,定义各自定义字段对应的匹配方式以及索引构建方式。还可定义各自定义字段对应的query理解方式。
在一些可能的情况下,字段定义接口包括IndexForm类,字段定义接口可以调用该IndexForm类中为各自定义字段定义其对应的属性。
字段定义接口还可以将各自定义字段以及各自定义字段对应的属性记录在索引模板中。
在一些可能的实现方式中,各自定义字段可以用各自定义字段对应的唯一标识进行确定,这样可以使得索引模板中不会出现相同的两个自定义字段。一个自定义字段对应的唯一标识可以用于指示该自定义字段。通常来说,该自定义字段对应的唯一标识还可以包括应用2的标识。
在一些可能的情况下,该步骤S31可以不执行。对于自定义字段,可以不将其记录到字段列表1中。
这里应该理解的是,在将应用2所生成内容中的自定义字段对应的字段值记录到索引信息文件中时,索引信息文件中可以增加自定义字段,并且增加自定义字段对应的索引。在索引信息文件中增加了新增字段之前,应用2定义的自定义字段对应的属性包括但不限于自定义字段对应的索引构建方式、匹配方式以及query理解方式中的一个或者多个。其中,索引信息文件中增加的自定义字段对应的索引为基于自定义字段对应的字段值构建的索引。
在一些可能的情况下,应用2可以将所述应用2指定自定义字段对应的索引构建方式添加到索引模板中。
在一些可能的情况下,应用2可以指定自定义字段的索引构建方式以及匹配方式,将自定义字段对应的索引构建方式以及匹配方式添加到索引模板中。其中,自定义字段对应的匹配方式用于指定自定义字段对应的索引值与查询内容进行匹配时的方式。在自定义字段没有设置query理解方式的情况下,在基于自定义字段对应的索引值与查询内容进行匹配时,可以不对查询内容进行检索理解。利用查询内容与自定义字段对应的索引值进行匹配得到检索结果即可。
在另一些可能的情况下,应用2可以指定自定义字段的索引构建方式、匹配方式以及query理解方式,将自定义字段对应的索引构建方式、匹配方式以及query理解方式添加到索引模板中。其中,自定义字段对应的检索理解方式用于指定对查询内容进行检索理解得到理解结果的方式;自定义字段对应的匹配方式用于指定自定义字段对应的索引值与理解结果进行匹配时的方式。
S32.应用2的索引构建接口基于可搜索内容1得到字段列表1,该字段列表1中包括可搜索内容1中的各字段以及各字段对应的字段值。
该字段列表1为应用2对应的字段列表。
索引构建接口可以将可搜索内容1中的各字段以及各字段对应的字段值的数据格式进行转化得到字段列表1。该字段列表1的数据结构为索引构建模块可以解析的数据结构。
S33.应用2的索引构建接口向搜索服务应用的索引构建模块发送字段列表1。
S34.索引构建模块基于字段列表1和索引模板构建索引和文档,得到索引集合2和文档集合2,该索引集合2和文档集合2对应垂域2。
索引构建模块基于字段列表1为应用2对应的字段列表,可以确定垂域2为应用2对应的垂域,该应用2对应的垂域可以表示为应用2对应的索引信息子文件的名称。
在可搜索内容1为动态功能数据的情况下,索引管理模块基于字段列表1得到的索引集合2和文档集合2可以参考前述图4B。
在可搜索内容1为新建笔记的情况下,索引管理模块基于字段列表1得到的索引集合2和文档集合2可以参考前述图5D。
索引构建模块可以基于字段列表1构建索引和文档,得到索引集合2和文档集合2,并确定索引集合2和文档集合2对应垂域2。该过程可以参考下述内容。
该索引集合2中包括字段列表1中各字段值对应的索引。一个字段值对应的索引包括该字段值本身以及该字段值的扩展值。
该文档集合2中包括可搜索内容1对应的全部文档。在可搜索内容1为动态功能数据的情况下,一个文档对应一个动态功能。一个文档对应的动态功能是指该文档中各字段和各字段值所描述的动态功能。在可搜索内容1为业务数据的情况下,一个可搜索内对应一个文档容,此时,文档中可以包括字段列表1中各字段以及各字段对应的字段值。
索引构建模块可以分别将文档集合2中的各文档与各文档中各字段值对应的索引相关联。将文档集合2中的一个文档于该文档中各字段值对应的索引相关联的方式可以包括:为该文档、该文档中的各字段值以及各字段值的扩展值设置相同的标识号,使得电子设备可以通过字段值或者扩展值的标识号找到相同标识号的文档。
其中,关于字段对应的索引构建方式以及索引模板的内容可以参考前述相关内容的描述,此处不再赘述。
S35.索引构建模块通知索引存储模块将索引集合2和文档集合2按照垂域2记录到索引信息文件中。
索引存储模块可以将索引集合2和文档集合2按照垂域2记录到索引信息文件中。该过程可以参考下述内容。
索引存储模块可以将该索引集合2以及文档集合2记录到索引信息文件中垂域2对应的索引信息分片中。该过程包括:在垂域2为应用2对应的索引信息子文件的名称的情况下,索引存储模块基于文件路径2找到应用2对应的索引信息子文件,并将索引集合2以及文档集合2记录到应用2对应的索引信息子文件中。该文件路径2中包括应用2对应的索引信息子文件的名称。这里应用2对应的索引信息子文件即可以看作垂域2对应的索引信息分片。该文件路径2可以看作应用2对应的索引信息子文件对应的路径。文件路径2可以用于找到应用2对应的索引信息子文件。
在一些可能的情况下,步骤S35中,将索引集合2和文档集合2按照垂域2记录到索引信息文件中这一操作是可选的。索引信息文件中也可以不按照垂域划分索引信息。索引存储模块将索引集合2和文档集合2记录到索引信息文件中即可。
在一些可能的情况下,索引模板中不仅包括系统字段对应的属性,还可以添加自定义字段对应的属性。自定义字段对应的属性可以来自不同的应用,这里为了便于区分不同的自定义字段。则可以将索引模板划分为不同应用对应的索引子模板。每一个应用对应的索引子模板中都可以包括系统字段以及系统字段对应的属性。对于存在自定义字段的应用,该应该对应的索引子模板中还可以包括该应用自定义的自定义字段以及自定义字段对应的属性。这样,在步骤S31,应用2可以将该应用2定义的自定义字段以及自定义字段对应的属性添加到索引模板中应用2对应的索引子模板中。
图14示出了通过数据库插装建立并记录索引的示例性软件结构框架以及处理流程。
电子设备通过数据库插装建立动态可搜索内容对应的索引并记录该索引的过程可以参考对图14中步骤1-步骤5的描述。
图14中步骤1,应用3产生可搜索内容2,并向数据库中写入可搜索内容2。其中,图14中步骤1即图14中的圆圈标识①。
图14中步骤2,数据库管理器检查到数据库发生修改,并且确定写入位置的标识。其中,图14中步骤2即图14中的圆圈标识②。
图14中步骤3,索引构建通知模块基于该写入位置的标识从数据库中获取可搜索内容2,并且基于该可搜索内容2生成字段列表2。其中,图14中步骤3即图14中的圆圈标识③。
图14中步骤4,索引构建模块基于该字段列表2构建索引(可搜索内容2对应的索引)。其中,图14中步骤4即图14中的圆圈标识④。
图14中步骤5,索引存储模块将构建执行索引存储,记录到索引信息文件中。其中,图14中步骤5即图14中的圆圈标识⑤。
这里应该理解的是,图14中步骤4中,在一些可能的情况下,索引构建模块除了建立可搜索内容2对应的索引以外,还可以建立可搜索内容2对应的文档。并将该索引和文档记录到索引信息中。
下面结合上述图9以及图14涉及的软件结构框图,详细描述电子设备通过数据库插装建立并记录索引以及文档时,内部各模块之间的交互流程。
图15示出了数据库插装建立并记录索引以及文档时内部各模块之间的示例性交互流程。
电子设备通过数据库插装建立动态可搜索内容对应的索引并记录该索引的过程可以参考对图15中步骤S40-步骤S46的描述。
S40.应用3生成可搜索内容2,将可搜索内容2存储到应用1对应的数据库中。
在一些可能的情况下,该可搜索内容2可以为应用3开启的过程中产生的动态可搜索内容。例如,可以为基于应用3产生的业务数据。
响应于在应用3中的输入操作,应用3可以基于输入的内容得到可搜索内容2。该输入操作可以是新建内容的操作。例如,在应用3为前述涉及的“短信”应用的情况下,响应于用户新建短信的操作,“短信”应用可以基于新建短信得到可搜索内容2,该可搜索内容2中可以包括新建短信中的字段值以及字段值对应的字段。
S41.数据库管理器检测到数据库发生修改,向索引构建通知模块发送应用1在数据库中写入位置对应的标识。
S42.索引构建通知模块调用应用3的provider类在应用1对应的数据库中基于标识获取写入位置记录的可搜索内容2。
S43.索引构建通知模块将可搜索内容2的数据结构进行转化得到字段列表2,该字段列表2中包括可搜索内容2中的各字段以及各字段对应的字段值。
该字段列表2中包括可搜索内容2中的各字段是指可搜索内容2中的系统字段。
索引构建模块确定垂域3为应用3对应的垂域,该应用3对应的垂域可以表示为应用3对应的索引信息子文件的名称。应用3对应的索引信息子文件中记录了在应用3中产生的内容(例如动态功能数据或者业务数据)所构建的索引。
S44.索引构建通知模块向索引构建模块发送字段列表2。
S45.索引构建模块基于字段列表2和索引模板构建索引和文档,得到索引集合3和文档集合3,该索引集合3和文档集合3对应垂域3。
索引构建模块可以基于字段列表2构建索引和文档,得到索引集合3和文档集合3,并确定索引集合3和文档集合3对应垂域3。该过程可以参考下述内容。
该索引集合3中包括字段列表2中各字段值对应的索引。一个字段值对应的索引包括该字段值本身以及该字段值的扩展值。
该文档集合3中包括可搜索内容2对应的全部文档。在可搜索内容2为动态功能数据的情况下,一个文档对应一个动态功能。一个文档对应的动态功能是指该文档中各字段和各字段值所描述的动态功能。在可搜索内容2为业务数据的情况下,一个可搜索内对应一个文档容,此时,文档中可以包括字段列表2中各字段以及各字段对应的字段值。
索引构建模块可以分别将文档集合3中的各文档与各文档中各字段值对应的索引相关联。将文档集合3中的一个文档于该文档中各字段值对应的索引相关联的方式可以包括:为该文档、该文档中的各字段值以及各字段值的扩展值设置相同的标识号,使得电子设备可以通过字段值或者扩展值的标识号找到相同标识号的文档。
其中,关于字段对应的索引构建方式以及索引模板的内容可以参考前述相关内容的描述,此处不再赘述。
S46.索引构建模块调用索引存储模块将索引集合3和文档集合3按照垂域3记录到索引信息文件中。
索引存储模块可以将索引集合3和文档集合3按照垂域3记录到索引信息文件中。该过程可以参考下述内容。
索引存储模块可以将该索引集合3以及文档集合3记录到索引信息文件中垂域3对应的索引信息分片中。该过程包括:在垂域3为应用3对应的索引信息子文件的名称的情况下,索引存储模块基于文件路径3找到应用3对应的索引信息子文件,并将索引集合3以及文档集合3记录到应用3对应的索引信息子文件中。该文件路径3中包括应用3对应的索引信息子文件的名称。这里应用3对应的索引信息子文件即可以看作垂域3对应的索引信息分片。该文件路径3可以看作应用3对应的索引信息子文件对应的路径。文件路径3可以用于找到应用3对应的索引信息子文件。
在一些可能的情况下,步骤S46中,将索引集合3和文档集合3按照垂域3记录到索引信息文件中这一操作是可选的。索引信息文件中也可以不按照垂域划分索引信息。索引存储模块将索引集合3和文档集合3记录到索引信息文件中即可。
图16示出了通过索引信息实现搜索的示例性软件结构框架以及处理流程。
电子设备通过索引信息实现搜索的过程可以参考对图16中步骤1-步骤6的描述。
图16中步骤1,搜索应用(例如“Honor搜索”应用)获取查询内容。其中,图16中步骤1即图16中的圆圈标识①。
图16中步骤2,query纠错模块对该查询内容进行纠错。其中,图16中步骤2即图16中的圆圈标识②。
图16中步骤3,搜索适配模块基于查询内容确定query信息(查询内容对应的query信息)在索引信息文件中进行搜索,确定搜索结果。其中,图16中步骤3即图16中的圆圈标识③。
图16中步骤4,搜索模块基于查询内容对应的query信息进行搜索,得到搜索结果。其中,图16中步骤4即图16中的圆圈标识④。
图16中步骤5,搜索响应模块向搜索应用(例如“Honor搜索”应用)返回搜索结果。在一些可能的情况下,该搜索响应模块返回的是相关性符合要求的搜索结果。其中,图16中步骤5即图16中的圆圈标识⑤。
图16中步骤6,搜索应用(例如“Honor搜索”应用)显示搜索结果。其中,图16中步骤6即图16中的圆圈标识⑥。
下面结合上述图9以及图16涉及的软件结构框图,详细描述电子设备通过索引信息实现搜索时,内部各模块之间的交互流程。
图17示出了通过索引信息实现搜索时内部各模块之间的示例性交互流程。
图18示出了输入查询内容进行搜索时的示意图。
电子设备通过索引信息实现搜索的过程可以参考对图17中步骤S101-步骤S111的描述。
S101.搜索应用获取输入的查询内容。
该搜索应用可以为电子设备提供的全局搜索应用,或者,局部搜索应用。全局搜索应用为对应的可搜索垂域为全部垂域的搜索应用。局部搜索应用为对应的可搜索垂域为部分垂域的搜索应用。
其中,搜索应用对应的可搜索垂域包括查询内容需要匹配的垂域。例如,搜索应用为全局搜索应用时,查询内容可以与全部垂域对应的索引信息分片中的索引进行匹配。搜索应用对应的可搜索垂域包括“应用功能”垂域时,查询内容可以与全部“应用功能”垂域对应的索引信息分片中的索引进行匹配。
在一些可能的情况下,搜索应用可以提供一个搜索框,该搜索应用可以通过该搜索框接收输入的查询内容。
该搜索应用可以为用户提供多种输入查询内容的方式,包括但不限于语音输入或者键盘输入等。
响应于在搜索应用输入查询内容的操作,搜索应用可以获取输入的查询内容,并且调用搜索服务应用执行搜索操作。关于该过程的相关内容可以参考下述对步骤S102-步骤S110的描述。
S102.搜索应用向搜索服务应用搜索适配模块发送查询内容。
在一些可能的情况下,搜索应用可以向搜索服务应用的搜索适配模块发送查询内容,使得搜索适配模块可以基于搜索应用对应的N1个可搜索垂域确定查询内容对应的query信息。对于该过程的描述可以参考下述对对步骤S105的描述,此处不再赘述。
在一些可能的情况下,搜索应用除了可以向搜索适配模块发送查询内容以外,还可以向搜索服务应用的query纠错模块发送查询内容。使得query纠错模块可以对查询内容进行纠错,关于该过程的描述可以参考下述对步骤S103的描述,此处不再赘述。
S103.query纠错模块基于查询内容进行纠错处理,得到纠错后的内容。
该步骤S103是可选的。
query纠错模块对查询内容进行纠错处理确定其中错误的字符,并将该错误的字符进行改正以得到纠错后的内容。这样,即使输入的查询内容存在错误的字符,例如拼写错误的字符等,电子设备也可以纠正这些错误。
在一些可能的情况下,query纠错模块在对查询内容进行纠错之前,还可以先对查询内容进行预处理,得到预处理后的查询内容。然后,再基于该预处理后的查询内容进行纠错处理,得到纠错后的内容。
其中,对查询内容进行预处理的目的在于得到更符合本文规范的查询内容。对查询内容进行预处理包括对查询内容进行大小写统一、将该查询内容中的全角字符转化为半角字符、删除查询内容中的空格符号、将该查询内容中的繁体字符转化为简体字符中的一个或者多个。
S104.query纠错模块向搜索适配模块发送纠错后的内容。
在前述步骤S103执行的情况下,query纠错模块可以执行步骤S104。
在前述步骤S103未执行的情况下,该步骤S104也不执行。
S105.搜索适配模块基于搜索应用对应的N1个可搜索垂域确定查询内容对应的query信息,query信息中至少包括M1个可搜索字段及其对应的query理解方式、匹配方式。
该N1个可搜索垂域可以表示为N1个索引信息分片的名称。在索引信息记录到索引信息文件中时,一个索引信息分片可以看作一个索引信息子文件,N1个可搜索垂域可以表示为N1个索引信息子文件的名称。
搜索适配模块首先基于N1个索引信息分片各自对应的文件路径找到N1个索引信息分片。不同索引信息分片对应的文件路径中包括该索引信息分片的名称。在索引信息分片为索引信息子文件的情况下,搜索适配模块基于各索引信息子文件对应的文件路径找到索引信息子文件。
在索引信息文件中包括多个索引信息子文件的情况下,该搜索应用对应的N1个可搜索垂域实际定义的是索引信息文件中允许被该搜索应用访问的索引信息子文件。在该搜索应用为全局搜索应用的情况下,索引信息文件中全部的索引信息子文件都运行被该搜索应用访问。在该搜索应用为局部搜索应用的情况下,索引信息文件中的部分索引信息子文件都运行被该搜索应用访问。
搜索适配模块基于搜索应用对应的N1个可搜索垂域确定该N1个可搜索垂域对应的索引信息分片中的可搜索字段。这里以该N1个可搜索垂域对应的索引信息分片中的可搜索字段共计M1个为例进行说明。其中,N1于M1均为大于等于1的正整数。
其中,一个可搜索垂域对应的索引信息分片中的可搜索字段包括所对应索引不为空的字段。如果一个字段对应的索引不为空,则存在该字段对应的字段值以及扩展值被记录到索引信息中。
搜索适配模块从索引模板中获取该M1个可搜索字段对应的query理解方式以及匹配方式作为查询内容对应的query信息。
在一些可能的情况下,查询内容对应的query信息除了包括M1个可搜索字段对应的query理解方式以及匹配方式以外,还可以包括N1个可搜索垂域对应的query纠错值。一个可搜索垂域对应一个query纠错值。一个可搜索垂域对应的query纠错值用于指示该可搜索垂域是否使用纠错后的内容。如果一个可搜索垂域使用纠错后的内容表示:基于查询内容在该可搜索垂域对应的索引信息分片中进行匹配时,会使用该纠错后的内容与该索引信息分片中的索引进行匹配。
在一些可能的实现方式中,一个垂域对应的query纠错值可以作为该垂域对应的属性记录在电子设备中。
S106.搜索适配模块通知搜索模块基于M1个可搜索字段对应的query理解方式分别对查询内容进行query理解处理,得到M1个可搜索字段对应的理解结果。
M1个可搜索字段中每一个可搜索字段均对应一个query理解方式。关于字段对应的query理解方式可以参考前述相关内容的描述,此处不再赘述。
搜索模块可以M1个可搜索字段对应的query理解方式分别对查询内容进行query理解处理,得到M1个可搜索字段对应的理解结果。后续,可以基于不同字段对应的理解结果在不同字段对应的索引中进行匹配。对应匹配过程的相关描述可以参考下述对步骤S107的描述,此处不再赘述。
如图18所示,这里以查询内容为“笔记计画”、M1个可搜索字段包括“标题”字段以及“描述”字段为例对步骤S106进行说明。其中,“标题”字段对应的query理解方式(query理解方式1)可以为:“预处理+分词+取同义词”。“描述”字段对应的query理解方式(query理解方式2)可以为:“预处理+分词+取同义词”。搜索模块基于query理解方式1对查询内容进行query理解处理,得到“标题”字段对应的理解结果(理解结果1)。搜索模块基于query理解方式2对查询内容进行query理解处理,得到“描述”字段对应的理解结果(理解结果2)。其中,该理解结果1与理解结果2为预处理结果(笔记计画)、分词结果(笔记计画)以及取同义词结果(条记安排)。
S107.搜索模块基于纠错后的内容、M1个可搜索字段对应的理解结果以及匹配方式在N1个索引信息分片中进行搜索,确定各索引信息分片中与查询内容匹配成功的文档,不同索引信息分片分别对应N1个可搜索垂域中的不同可搜索垂域。
搜索模块基于纠错后的内容、M1个可搜索字段对应的理解结果以及匹配方式在N1个索引信息分片中进行搜索,确定各索引信息分片中与查询内容匹配成功的文档。该过程包括:对于各索引信息分片中每一个索引信息分片。搜索模块基于该索引信息分片中各字段对应的索引分别与各字段对应的理解结果进行匹配,确定该索引信息分片中各字段对应的索引中与各字段对应的理解结果匹配成功的字段值或者扩展值,返回该匹配成功的字段值或者扩展值所关联的文档。基于各字段对应的索引中每一个字段对应的索引与该字段对应的理解结果进行匹配时是按照该字段对应的匹配方式进行的。关于匹配方式以及按照匹配方式进行匹配的内容可以参考前述相关内容的描述,此处不再赘述。
此外,搜索模块基于一个索引信息分片中各字段对应的索引分别与各字段对应的理解结果进行匹配时,搜索模块还可以确定该索引信息分片对应的query纠错值以进一步确定该索引信息分片是否使用纠错后的结果。在该索引信息分片使用纠错后的结果时,搜索模块还可以基于该索引信息分片中各字段对应的索引分别与纠错后的结果进行匹配,确定该索引信息分片中各字段对应的索引中与纠错后的结果匹配成功的字段值或者扩展值,返回该匹配成功的字段值或者扩展值所关联的文档。
下面基于图18对步骤S107进行示例性说明。
如图18所示,这里以查询内容为“笔记计画”、纠错后的内容为“笔记计划”、N1个可搜索垂域包括“应用功能”垂域以及“笔记”垂域、M1个可搜索字段包括“标题”字段以及“描述”字段为例进行说明。这里N1个索引信息分片中包括“应用功能”垂域对应的索引信息分片(索引信息分片1)以及“笔记”垂域对应的索引信息分片(所述信息分片2)。
对于索引信息分片1,搜索模块可以基于索引信息分片1中“标题”字段对应的索引与“标题”字段对应的理解结果(理解结果1)按照匹配方式1(对应“标题”字段)进行匹配,确定“标题”字段对应的索引中与“标题”字段对应的理解结果匹配成功的字段值或者扩展值,并返回匹配成功的字段值或者扩展值关联的文档(对应“应用功能”垂域)。搜索模块还可以基于索引信息分片1中“描述”字段对应的索引与“描述”字段对应的理解结果(理解结2)按照匹配方式2(对应“描述”字段)进行匹配,确定“描述”字段对应的索引中与“描述”字段对应的理解结果匹配成功的字段值或者扩展值,并返回匹配成功的字段值或者扩展值关联的文档(对应“应用功能”垂域)。
搜索模块还可以确定“应用功能”垂域可以使用纠错后的内容。则还可以基于纠错后的内容分别与索引信息分片1中“标题”字段对应的索引以及“描述”字段对应的索引进行匹配,并返回匹配成功的字段值或者扩展值关联的文档(对应“应用功能”垂域)。
对于索引信息分片2,搜索模块可以基于索引信息分片2中“标题”字段对应的索引与“标题”字段对应的理解结果(理解结果1)按照匹配方式1(对应“标题”字段)进行匹配,确定“标题”字段对应的索引中与“标题”字段对应的理解结果匹配成功的字段值或者扩展值,并返回匹配成功的字段值或者扩展值关联的文档(对应“笔记”垂域)。搜索模块还可以基于索引信息分片2中“描述”字段对应的索引与“描述”字段对应的理解结果(理解结2)按照匹配方式2(对应“描述”字段)进行匹配,确定“描述”字段对应的索引中与“描述”字段对应的理解结果匹配成功的字段值或者扩展值,并返回匹配成功的字段值或者扩展值关联的文档(对应“笔记”垂域)。
搜索模块还可以确定“笔记”垂域不使用纠错后的内容。则不会基于纠错后的内容分别与索引信息分片2中“标题”字段对应的索引以及“描述”字段对应的索引进行匹配。
这里应该理解的是,一个可搜索字段对应的理解结果按照该可搜索字段对应的匹配方式在N1个索引信息分片中进行搜索,确定各索引信息分片中与查询内容匹配成功的文档可以理解为:一个可搜索字段对应的理解结果按照该可搜索字段对应的匹配方式在N1个索引信息分片中进行搜索,确定各索引信息分片中与一个可搜索字段对应的理解结果匹配成功的索引值(包括字段值和扩展值)关联的文档。因为,一个可搜索字段对应的理解结果可以用于表示查询内容,因此与一个可搜索字段对应的理解结果匹配成功的文档也是与与查询内容匹配成功的文档。
S108.搜索模块将各索引信息分片中的匹配成功的文档作为搜索结果,将各搜索结果按照垂域进行聚合,得到N2个可搜索垂域对应的搜索结果。
每一个搜索结果均与其关联的字段值或者扩展值所属的垂域相对应。
搜索模块可以将对应相同垂域的搜索结果聚合称为一组,得到N2个可搜索垂域对应的搜索结果。
S109.搜索模块通知搜索响应模块对N2个可搜索垂域对应的搜索结果分别与查询内容进行相关性分析,确定N2个可搜索垂域中相关性符合要求的搜索结果。
在一些可能的情况下,一个可搜索垂域中相关性符合要求的搜索结果可以包括该可搜索垂域的各搜索结果中与查询内容相关性最高的前E个搜索结果。其中,E为大于等于1的整数。
在一些可能的实现方式,一个可搜索垂域的各搜索结果中,与该可搜索垂域对应的索引匹配成功次数最多的搜索结果为该可搜索垂域的各搜索结果中与查询内容相关性最高的搜索结果。其中,一个搜索结果与可搜索垂域对应的索引匹配成功一次包括:在基于查询内容与该可搜索垂域中各字段对应的索引进行匹配时,基于匹配成功的字段值或者索引值返回了该搜索结果。
S110.搜索响应模块向搜索应用返回N2个可搜索垂域中相关性符合要求的搜索结果。
S111.搜索应用基于该N2个可搜索垂域中相关性符合要求的搜索结果进行显示。
对N2个可搜索垂域中相关性符合要求的搜索结果进行显示时的一个示例可以参考前述图7B示出的用户界面73以及对图7B的相关描述。
搜索应用可以将N2个可搜索垂域中来自同一个垂域的相关性符合要求的各搜索结果中部分或者全部字段对应的字段值显示在一个展示框中。展示框中还可以包括垂域名称。通常来说,一个搜索结果中的“图标”字段对应的字段值(图标)与该搜索结果中其他字段对应的字段值在显示框中显示时呈现前后关系,而不是上下关系。这样,可以基于图标突出其他字段对应的字段值所来自的应用或者服务等。
这里应该理解的是,前述涉及的搜索服务应用除了可以被全局搜索应用以及局部搜索应用调用进行搜索以外,还可以被具有应用内搜索功能的应用调用。例如“图库”应用、“笔记”应用等应用都可以为具有应用内搜索功能的应用。该具有应用内搜索功能的应用可以获取查询内容,并调用搜索服务应用基于查询内容在目标索引信息分片中进行搜索,搜索服务应用得到搜索结果之后可以将相关性符合要求的搜索结果返回至该具有应用内搜索功能的应用。然后,该具有应用内搜索功能的应用可以基于查询结果进行显示。该目标索引信息分片可以为该具有应用内搜索功能的应用对应的索引信息分片,目标索引信息分片的索引是基于该具有应用内搜索功能的应用产生的内容(例如动态功能数据以及业务数据)所构建的。该目标索引信息分片可以为具有应用内搜索功能的应用允许访问的索引信息子文件。具有应用内搜索功能的应用允许访问的索引信息子文件中记录了具有应用内搜索功能的应用产生的内容(例如动态功能数据以及业务数据)。
下文中,为了便于叙述,将具有应用内搜索功能的应用成为应用4。在应用4调用搜索服务应用进行搜索时,该应用4其实也是一个搜索应用。
在一些可能的情况下,应用4调用搜索服务应用执行搜索的过程可以参考前述步骤S101-步骤S111的相关描述,此处不再赘述。不同之处在于应用4对应的可搜索垂域为该应用4在开启之后产生的内容。例如,在应用4为“笔记”应用的情况下,该应用4对应的可搜索垂域为“笔记”垂域,此时,应用4可以从索引信息文件中获取应用4对应的索引信息子文件执行搜索,应用4对应的索引信息子文件用于记录应用4在开启之后产生的内容(例如动态功能数据以及业务数据)。
在另一些可能的情况下,针对查询内容中包括L个查询词语的情况,应用4调用搜索服务应用执行搜索的过程与前述步骤S101-步骤S111可以不同。而是采取以下方式:应用4可以自定义基于查询内容进行搜索时的检索理解方式或者匹配方式中的一个或者多个。然后将查询内容、查询内容进行搜索时的检索理解方式以及匹配方式传输至搜索服务应用。然后搜索服务应用可以通过该查询内容、基于查询内容进行搜索时的检索理解方式以及匹配方式在应用4对应的搜索信息子文件中查询应用4中与查询内容相关的内容。例如,可以定义匹配方式为基于L个查询词语分别进行搜索,即L个查询词语之间是相互独立的。这样可以实现一次搜索返回多个L个查询词语对应的搜索结果。该L可以为大于或者等于2的整数。
其中,查询内容中包括L个查询词语可以为理解为:L个查询词语中相邻的两个查询词语在输入时存在空格等特殊符号。还可以理解为:L个查询词语中相邻的两个查询词语在输入时存在大于预设时间的时间差。
图19示出了查询内容中包括L个查询词语进行搜索时的示意图。
在一些可能的情况下,对于查询内容中包括L个查询词语进行搜索的过程可以参考下述对图19中步骤S201-步骤S208的描述。
S201.应用4获取输入的查询内容,查询内容中包括L个查询词语,L个查询词语中相邻的两个查询词语在输入时存在空格。
应该理解的是,步骤S201是以L个查询词语中相邻的两个查询词语在输入时存在空格为例进行说明的,实际还可以为其他的情况,具体可以参考前述内容,此处不再赘述。
响应于在应用4中输入L个查询词语的操作,应用4获取该L个查询词语作为查询内容。
S202.应用4定义对查询内容进行搜索时的query理解方式以及匹配方式。
应用4可以通过调用自定义搜索接口定义查询内容进行搜索时的query理解方式以及匹配方式。
S203.应用4向搜索服务应用发送查询内容、对查询内容进行搜索时的query理解方式以及匹配方式。
S204.搜索服务应用确定索引信息文件中应用4允许访问的索引信息子文件。
应用4允许访问的索引信息子文件中记录了应用4开启之后产生的内容(例如动态功能数据或者业务数据)。例如,在应用4为“图库”应用的情况下,该应用4对应的可搜索垂域为“图库”垂域。此时,应用4可以从索引信息文件中获取应用4对应的索引信息子文件执行搜索。此时,应用4对应的索引信息子文件可以用于记录应用4在开启之后产生的图像以及图像的信息。
S205.搜索服务应用基于查询内容进行搜索时的query理解方式对查询内容进行query理解,得到查询内容的理解结果。
该步骤S205的相关内容与前述对步骤S106中建立可搜索字段对应的理解结果的过程相似,可以参考前述对步骤S106中建立可搜索字段对应的理解结果的过程,此处不再赘述。
S206.搜索服务应用基于查询内容的理解结果,按照查询内容进行搜索时的匹配方式在中应用4允许访问的索引信息子文件中查询与查询内容相关的内容作为搜索结果。
搜索服务应用基于查询内容的理解结果,按照查询内容进行搜索时的匹配方式在中应用4允许访问的索引信息子文件中查询与查询内容的理解结果匹配成功的索引值(包括字段值或者扩展值)相关联的文档作为搜索结果。
S207.搜索服务应用向应用4返回相关性符合要求的搜索结果。
S208.应用4基于性符合要求的搜索结果进行显示。
需要说明的是,前述内容中涉及的应用1以及应用2可以为相同的应用。应用1以及应用3也可以为相同的应用。应用4可以为前述涉及的应用1-应用3中的任一应用,也可以为其他应用。
还需要说明的是,前述内容中提及的索引模板不是必须的。电子设备可以利用每个字段对应的属性相同的方式建立索引信息文件,实现不拉起应用也可以搜索应用的内容的目的。
图20示出了电子设备得到索引信息文件并基于索引信息文件进行搜索的示例性流程图。
关于电子设备得到索引信息文件并基于该索引信息文件进行搜索,得到搜索结果的过程可以参考下述对步骤S301-步骤S303的描述。
S301.电子设备安装第一应用,该第一应用的安装包中包括字段信息,该字段信息用于描述该第一应用的第一功能。
第一应用可以为前述涉及的应用1。例如,可以为“笔记”应用、“视频”应用等。
第一功能可以为第一应用在安装之后可以提供的功能,该第一功能在第一应用第一次开启之前就具有,不是在应用运行的过程中产生的。也可以理解为该第一功能可以为第一应用提供的静态功能。
该第一应用的字段信息可以记录于安装包中的搜索配置文件中。其中,关于字段信息、搜索配置文件的描述可以参考内容中相关内容的描述,此处不再赘述。
在第一应用为“笔记”应用的情况下,该字段信息的一个示例性展示可以参考前述图3E中(2)所示的内容。
S302.响应于第一应用安装完成,电子设备的索引信息文件中包括描述该第一功能的第一索引值。
该第一索引值为电子设备基于该字段信息建立的索引值。
响应于第一应用安装完成,电子设备基于字段信息建立索引值,得到第一索引值。电子设备基于字段信息建立索引值的过程可以参考前述对步骤S16-步骤S22的描述,此处不再赘述。
在一些可能的情况下,除了基于字段信息建立第一索引值以外,还可以基于字段信息建立第一文档,该第一文档中可以包括字段信息中描述一个第一功能的字段以及字段对应的字段值,该第一文档与该第一索引值关联。关于生成第一文档的过程可以参考前述对步骤S22以及相关内容的描述,此处不再赘述。
第一应用安装完成的确定方式包括但不限于:电子设备发起该第一应用安装完成的广播,或者,电子设备中包括该第一应用的图标等。
S303.响应于对搜索应用的第一操作,电子设备显示搜索结果,该搜索结果包括该索引信息文件中与该第一功能相关的部分或者全部索引值。
该第一操作可以为前述涉及的在搜索应用的搜索框中输入查询内容的操作。电子设备可以基于该查询内容在索引信息文件中进行搜索,确定与查询内容相关的索引值,并返回该索引值对应的文档作为搜索结果。例如,该搜索结果中可以包括与第一功能相关的部分或者全部索引值,该部分或者全部索引值记录于该部分或者全部索引值关联的文档中。
如前述图7E所示,该第一功能可以为“笔记”应用中的“新建待办”功能,在搜索应用中输入查询内容(“新建待办”)的情况下,电子设备可以基于搜索结果进行显示,得到用户界面76,该用户界面76中即可以包括描述“新建待办”功能的部分索引值,例如“新建待办”这一字段值。
在一些可能的情况下,步骤S303执行的过程中,该第一应用可以处于运行状态,也可以处于未运行的状态,本申请实施例对此不作限定。
在一些可能的情况下,索引信息文件中除了可以包括基于字段信息建立的第一索引值以外。还可以包括基于第二应用的字段信息建立的第二索引值。该第二索引值可以用于描述第二应用的第二功能。该第二应用的第二功能为第二应用在安装之后可以提供的功能,该第二功能在第二应用第一次开启之前就具有,不是在应用运行的过程中产生的。也可以理解为该第二功能可以为第二应用提供的静态功能。
在一些可能的情况下,该索引信息文件中除了前述涉及的第一索引值以及第二索引值以外。还可以包括基于第一应用在安装之后产生的第一内容所得到的索引值(第三索引值)。该第一内容可以包括第一应用产生的业务数据以及动态功能数据,本申请实施例对此不作限定。在第一内容中包括新增字段(自定义字段)的情况下,电子设备还可以采用该第一应用设置的新增字段对应的索引构建方式对该新增字段对应的字段值建立索引值。关于基于第一内容建立第三索引值的过程可以参考前述对步骤S30-步骤S35的描述。还可以参考前述对步骤S40-步骤S46的描述。本申请实施例对此不再赘述。
结合前述内容,应该理解的是,在一些可能的情况下,基于第一内容得到第三索引值时,还可以基于第一内容得到第二文档,该第二文档中包括该第一内容中的字段以及字段对应的字段值。该第二文档与第三索引值相关联。关于建立第二文档的相关内容可以参考前述对步骤S35或者步骤S46的描述,此处不再赘述。
在索引信息文件按照垂域划分为至少一个子文件,且每一个子文件对应一个文件路径的情况下,电子设备可以基于第一文件路径将第一索引值以及第二索引值记录到索引信息文件中的第一子文件中。该第一子文件可以为前述涉及的静态功能子文件。
这里应该理解的是,该第一子文件中除了记录第一索引值以外,还可以记录前述涉及的第一文档。还可以记录基于第二应用中的字段信息得到的文档。
该索引信息文件中除了第一子文件以外,还可以包括第二子文件,该第二子文件可以用于记录第三索引值。或者该第二子文件还可以用于记录第三索引值以及第二文档。
应该理解的是,第二应用产生的内容所建立的索引值(第四索引值)可以记录在第二应用对应的索引信息子文件(第三子文件)中。
下面介绍本申请实施例提供的示例性电子设备。
图21是本申请实施例提供的电子设备的结构示意图。
下面以电子设备为例对实施例进行具体说明。应该理解的是,电子设备可以具有比图21中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图21中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
电子设备可以包括:处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备的具体限定。在本申请另一些实施例中,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备的结构限定。在本申请另一些实施例中,电子设备也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。
电子设备的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
在一些实施例中,电子设备的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS)等。
电子设备通过GPU,显示屏194,以及应用处理器等实现显示功能。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。
电子设备可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
电子设备可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。
按键190包括开机键,音量键等。按键190可以是机械按键。
马达191可以产生振动提示。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口195用于连接SIM卡。
本申请实施例中,该处理器110可以调用内部存储器121中存储的计算机指令,以使得终端执行本申请实施例中的搜索方法。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
上述实施例中所用,根据上下文,术语“当…时”可以被解释为意思是“如果…”或“在…后”或“响应于确定…”或“响应于检测到…”。类似地,根据上下文,短语“在确定…时”或“如果检测到(所陈述的条件或事件)”可以被解释为意思是“如果确定…”或“响应于确定…”或“在检测到(所陈述的条件或事件)时”或“响应于检测到(所陈述的条件或事件)”。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如DVD)、或者半导体介质(例如固态硬盘)等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。
Claims (16)
1.一种搜索方法,其特征在于,所述方法包括:
电子设备将所述第一应用产生的第一内容记录到索引信息文件中,所述索引信息文件包括用于描述所述第一内容的索引值;所述索引信息文件中还包括描述第二应用产生的第二内容的索引值;
所述电子设备在搜索应用中检测到搜索操作,所述电子设备在所述索引信息文件中进行搜索,得到搜索结果;
所述电子设备基于所述搜索结果进行显示,所述搜索结果包括描述所述第一内容的部分或者全部索引值。
2.根据权利要求1所述的方法,其特征在于,在所述电子设备在所述索引信息文件中进行搜索时,所述第一应用未运行。
3.根据权利要求1或2所述的方法,其特征在于,所述第一应用产生第一内容之后,所述索引信息文件中增加新增字段,所述新增字段对应的索引值是按照所述第一应用预设的索引构建方式得到的,所述新增字段对应的索引值包括于描述所述第一内容的索引值。
4.根据权利要求3所述的方法,其特征在于,在所述索引信息文件中增加新增字段之前,所述方法还包括:
所述电子设备将所述第一应用指定的索引构建方式添加到索引模板中。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述电子设备将所述新增字段对应的匹配方式以及检索理解方式添加到所述索引模板中,所述新增字段对应的检索理解方式用于指定对所述查询内容进行检索理解得到理解结果的方式;所述新增字段对应的匹配方式用于指定所述新增字段对应的索引值与所述理解结果进行匹配时的方式。
6.根据权利要求1-5中任一项所述的方法,其特征在于,电子设备将所述第一应用产生的第一内容记录到索引信息文件中,具体包括:
所述电子设备基于第一文件路径将所述描述所述第一内容的索引值记录到所述索引信息文件的第一子文件中;所述第一文件路径中携带了所述索引信息文件的名称以及所述第一子文件的名称。
7.根据权利要求6所述的方法,其特征在于,所述第一子文件中还包括所述电子设备基于所述第一内容建立的第一文档;所述第一文档中包括所述第一内容中的字段以及字段对应的字段值;所述第一文档与所述第一文档中字段值的索引值相关联。
8.根据权利要求7所述的方法,其特征在于,所述索引模板中除了所述第一子文件以外,还包括第二子文件,所述第二子文件用于记录描述第二应用产生的第二内容的索引值,或者,还用于记录所述电子设备基于所述第二内容建立的第二文档;所述第二文档中包括所述第二内容中的字段以及字段对应的字段值;所述第二文档与所述第二文档中字段值的索引值相关联。
9.根据权利要求8所述的方法,其特征在于,所述电子设备在所述索引信息文件中进行搜索,具体包括:
所述电子设备基于非空字段对应的检索理解方式对查询内容进行检索理解处理,得到所述非空字段对应的理解结果;所述非空字段为所述索引信息文件中具有索引值的字段;所述查询内容为所述电子设备在所述搜索应用中检测到搜索操作之后获取的内容;
所述电子设备基于所述非空字段对应的理解结果按照所述非空字段对应的匹配方式在所述非空字段对应的索引值中确定与所述非空字段对应的理解结果匹配成功的索引值;所述非空字段对应的索引值为所述索引信息文件中基于所述非空字段对应的索引构建方式得到的索引值;
所述电子设备确定与匹配成功的索引值关联的文档作为搜索结果。
10.根据权利要求9所述的方法,其特征在于,所述电子设备基于非空字段对应的检索理解方式对查询内容进行检索理解处理之前,所述方法还包括:
所述电子设备基于所述索引信息文件中允许被所述搜索应用访问的子文件的文件路径从所述索引信息文件中获取所述允许被所述搜索应用访问的子文件;所述允许被所述搜索应用访问的子文件中包括所述第一子文件或者所述第二子文件;
所述电子设备将所述允许被所述搜索应用访问的子文件中具有索引值的字段确定为所述非空字段。
11.根据权利要求10所述的方法,其特征在于,所述允许被所述搜索应用访问的子文件配置了使用纠错结果的情况下,所述方法还包括:
所述电子设备对所述查询内容进行纠错处理,得到纠错结果;
所述电子设备基于所述纠错结果在所述允许被所述搜索应用访问的子文件中记录的索引值中确定与所述纠错结果匹配成功的索引值。
12.根据权利要求10或11所述的方法,其特征在于,所述电子设备确定与匹配成功的索引值关联的文档作为搜索结果之后,所述方法还包括:
所述电子设备将在同一个允许被所述搜索应用访问的子文件中确定的各搜索结果聚合为一组,并将所述各搜索结果在一个展示框中进行显示。
13.根据权利要求1-12中任一项所述的方法,其特征在于,所述方法还包括:
在所述第一应用运行的情况下,检测到在第一应用中输入查询内容的操作;
在所述查询内容中包括L个查询词语的情况下,所述第一应用定义基于所述查询内容进行搜索时的检索理解方式以及匹配方式;所述L为大于或者等于2的整数;所述L个查询词语中相邻的两个查询词语在输入时存在空格;
所述第一应用调用搜索服务应用通过所述查询内容、所述基于所述查询内容进行搜索时的检索理解方式以及匹配方式在所述索引信息文件中查询所述第一应用中与所述查询内容相关的内容。
14.根据权利要求13所述的方法,其特征在于,所述第一应用调用搜索服务应用通过所述查询内容、所述基于所述查询内容进行搜索时的检索理解方式以及匹配方式在所述索引信息文件中查询所述第一应用中与所述查询内容相关的内容,具体包括:
所述搜索服务按照所述查询内容进行搜索时的检索理解方式对所述查询内容进行检索理解处理,得到所述查询内容的理解结果;
所述搜索服务应用基于所述查询内容的理解结果,按照所述查询内容进行搜索时的匹配方式在索引信息文件中的第一子文件中查询与所述查询内容相关的内容;所述第一子文件中包括用于描述所述第一内容的索引值。
15.一种电子设备,其特征在于,包括:一个或多个处理器和存储器;所述存储器与所述一个或多个处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行如权利要求1至14中任一项所述的方法。
16.一种计算机可读存储介质,包括指令,其特征在于,当所述指令在电子设备上运行时,使得所述电子设备执行如权利要求1至14中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310861566.2A CN117056383A (zh) | 2023-07-12 | 2023-07-12 | 搜索方法和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310861566.2A CN117056383A (zh) | 2023-07-12 | 2023-07-12 | 搜索方法和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117056383A true CN117056383A (zh) | 2023-11-14 |
Family
ID=88652581
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310861566.2A Pending CN117056383A (zh) | 2023-07-12 | 2023-07-12 | 搜索方法和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117056383A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117743445A (zh) * | 2024-02-18 | 2024-03-22 | 荣耀终端有限公司 | 一种数据访问方法及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104412265A (zh) * | 2012-04-27 | 2015-03-11 | 奎克西公司 | 更新用于促进应用搜索的搜索索引 |
CN113849723A (zh) * | 2021-08-31 | 2021-12-28 | 北京达佳互联信息技术有限公司 | 搜索方法及搜索装置 |
CN114547253A (zh) * | 2022-03-03 | 2022-05-27 | 北京伽睿智能科技集团有限公司 | 一种基于知识库应用的语义搜索方法 |
-
2023
- 2023-07-12 CN CN202310861566.2A patent/CN117056383A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104412265A (zh) * | 2012-04-27 | 2015-03-11 | 奎克西公司 | 更新用于促进应用搜索的搜索索引 |
CN113849723A (zh) * | 2021-08-31 | 2021-12-28 | 北京达佳互联信息技术有限公司 | 搜索方法及搜索装置 |
CN114547253A (zh) * | 2022-03-03 | 2022-05-27 | 北京伽睿智能科技集团有限公司 | 一种基于知识库应用的语义搜索方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117743445A (zh) * | 2024-02-18 | 2024-03-22 | 荣耀终端有限公司 | 一种数据访问方法及电子设备 |
CN117743445B (zh) * | 2024-02-18 | 2024-06-21 | 荣耀终端有限公司 | 一种数据访问方法及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7694214B2 (en) | Multimodal note taking, annotation, and gaming | |
US9667690B2 (en) | Content tagging using broadcast device information | |
US10739958B2 (en) | Method and device for executing application using icon associated with application metadata | |
US10769215B2 (en) | Method, apparatus and computer program product providing an application integrated mobile device search solution using context information | |
US20080033903A1 (en) | Methods and apparatuses for using location information | |
US20130297604A1 (en) | Electronic device and method for classification of communication data objects | |
US20090083237A1 (en) | Method, Apparatus and Computer Program Product for Providing a Visual Search Interface | |
US9485306B2 (en) | Methods, apparatuses, and computer program products for facilitating a data interchange protocol | |
US20100169326A1 (en) | Method, apparatus and computer program product for providing analysis and visualization of content items association | |
KR20090111827A (ko) | 모바일 통신 장치에서의 보이스 검색을 위한 방법 및 장치 | |
US9483507B2 (en) | Method for managing data and an electronic device thereof | |
US20090006342A1 (en) | Method, Apparatus and Computer Program Product for Providing Internationalization of Content Tagging | |
KR102065029B1 (ko) | 전자 장치의 데이터 공유 방법 및 그 전자 장치 | |
CN117056383A (zh) | 搜索方法和电子设备 | |
CN108829753A (zh) | 一种信息处理方法及装置 | |
US9165056B2 (en) | Generation and use of an email frequent word list | |
JP4904697B2 (ja) | 情報管理システム | |
US7797524B2 (en) | Method of dynamic database association in multi-mode communication device | |
CN109325057B (zh) | 中间件管理方法、装置、计算机设备以及存储介质 | |
US20100030802A1 (en) | System and method tha allows relational data to be modeled efficiently and synchronized without creating dangling references | |
CN113157722A (zh) | 一种数据处理方法、装置、服务器、系统及存储介质 | |
CN111680212B (zh) | 存储内容搜索方法、系统和电子设备 | |
CN113760382B (zh) | 一种插件启动方法、装置、终端设备及存储介质 | |
US8626197B1 (en) | Method and system for linking information from a mobile telephony device with an electronic file | |
CN116484078A (zh) | 一种检索方法、装置、电子设备及计算机可读存储介质 |
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 |