代码之家  ›  专栏  ›  技术社区  ›  Zaphod

azure搜索中所需的字符数

  •  0
  • Zaphod  · 技术社区  · 6 年前

    我做了一个azure搜索服务,它已经启动并开始工作了。我希望用户能够搜索3个字符或更多。 我在不同的文件中有以下文本:

    1. 帕拉塞特200mg
    2. 帕拉塞特150mg
    3. Kodein/扑热息痛SA

    当我搜索“par”时没有结果。我必须输入5个字符(parac),结果得到1&2个字符。我也想要这个结果。这可能吗?在有关设置搜索所需字符数的文档中找不到任何内容。

    1 回复  |  直到 6 年前
        1
  •  1
  •   ramero-MSFT    6 年前

    为了获得最佳性能,您可以在索引中启用“快速”前缀分析器,它将在索引时将每个令牌分解为前缀列表。下面是一些关于如何做到这一点的附加信息: 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

    我怀疑使用后缀运算符(或在使用快速前缀分析器时重新索引)进行搜索也会对您列出的第三个文档(kodein/paracetamol sa)起作用。如果仍然不起作用,则可能是因为您使用了一个不在“/”字符上拆分的标记赋予器。默认分析器应该在“/”上正确拆分,但如果使用自定义分析器,则可能将整个“kodein/paracetamol”表达式标记为单个术语,这将解释为什么搜索parace*不返回文档,因为文档的前缀是“kode”。“,”

    推荐文章