天蓝色搜索中所需的字符数
Required number of characters in azure search
我制作了一个 azure 搜索服务,它正在运行。我希望用户能够使用 3 个或更多字符进行搜索。
我在不同的文档中有以下文本:
- 扑热息痛 200 毫克
- 扑热息痛 150 毫克
- Kodein/paracetamol SA
当我搜索 'par' 时,我没有得到任何结果。我必须输入 5 个字符 (parac),结果得到 1 和 2。 'par' 我也想要这个结果。这可能吗?我在文档中找不到有关设置搜索所需字符数的任何内容。
为了获得最佳性能,您可以在索引中启用 "fast" 前缀分析器,它会在索引时将每个标记分解为前缀列表。这里有一些关于如何做到这一点的额外信息:https://azure.microsoft.com/en-us/blog/custom-analyzers-in-azure-search/
这将需要您重新索引您的数据,因此如果您要创建一个全新的索引,这是一个选项。
如果重新索引不是一个选项,您可以在查询中使用后缀操作“*”。以下是有关后缀运算符的更多信息:https://docs.microsoft.com/en-us/rest/api/searchservice/Simple-query-syntax-in-Azure-Search?redirectedfrom=MSDN
我怀疑使用后缀运算符搜索(或使用快速前缀分析器重新索引)也适用于您列出的第 3 个文档 (Kodein/paracetamol SA)。如果它仍然不起作用,可能是因为您使用的分词器没有在 '/' 字符上拆分。默认分析器应该在“/”上正确拆分,但如果您使用的是自定义分析器,则整个 "Kodein/paracetamol" 表达式可能会标记为单个术语,这可以解释为什么搜索 parace* 不会 return 文档,因为文档的前缀是 "kode…".
我制作了一个 azure 搜索服务,它正在运行。我希望用户能够使用 3 个或更多字符进行搜索。 我在不同的文档中有以下文本:
- 扑热息痛 200 毫克
- 扑热息痛 150 毫克
- Kodein/paracetamol SA
当我搜索 'par' 时,我没有得到任何结果。我必须输入 5 个字符 (parac),结果得到 1 和 2。 'par' 我也想要这个结果。这可能吗?我在文档中找不到有关设置搜索所需字符数的任何内容。
为了获得最佳性能,您可以在索引中启用 "fast" 前缀分析器,它会在索引时将每个标记分解为前缀列表。这里有一些关于如何做到这一点的额外信息:https://azure.microsoft.com/en-us/blog/custom-analyzers-in-azure-search/
这将需要您重新索引您的数据,因此如果您要创建一个全新的索引,这是一个选项。
如果重新索引不是一个选项,您可以在查询中使用后缀操作“*”。以下是有关后缀运算符的更多信息:https://docs.microsoft.com/en-us/rest/api/searchservice/Simple-query-syntax-in-Azure-Search?redirectedfrom=MSDN
我怀疑使用后缀运算符搜索(或使用快速前缀分析器重新索引)也适用于您列出的第 3 个文档 (Kodein/paracetamol SA)。如果它仍然不起作用,可能是因为您使用的分词器没有在 '/' 字符上拆分。默认分析器应该在“/”上正确拆分,但如果您使用的是自定义分析器,则整个 "Kodein/paracetamol" 表达式可能会标记为单个术语,这可以解释为什么搜索 parace* 不会 return 文档,因为文档的前缀是 "kode…".