【问题标题】:Azure search wildcards and dash characterAzure 搜索通配符和破折号
【发布时间】:2020-04-26 01:23:04
【问题描述】:

我有一个包含项目的索引:

{ "samplefield": "bd1b0d5d-743e-4b3c-a0e9-e9e4e0766429" }

我尝试在该字段上使用如下搜索表达式:“bd1b0d5d\\-743e\\-4b3c\\-a0*”。

不幸的是,将转义字符“-”与通配符“*”结合起来不起作用。不明白为什么会这样?当我提供完整的搜索词时,它可以正常工作。

搜索参数为:SearchMode.All 和 QueryType.Full 使用 Lucene 语法。

【问题讨论】:

    标签: c# azure azure-cognitive-search


    【解决方案1】:

    这里的问题是因为它被认为是用“-”分隔的每个部分都是一个不同的词。你有两个选择。

    1-"samplefield eq 'bd1b0d5d' and samplefield eq '743e' and samplefield eq 'a0e9' and samplefield eq 'e9e4e0766429'

    2-将此特定字段的分析器从 StandardAnalyzer 更改为 WhitespaceAnalyzer

    更多信息:https://docs.microsoft.com/en-us/azure/search/index-add-custom-analyzers#AnalyzerTable

    【讨论】:

      【解决方案2】:

      你可以试试:

      "bd1b0d5d\\-743e\\-4b3c\\-a0*/"
      

      【讨论】:

      • 不幸的是,这给出了一个异常:“无法在第 1 行第 43 列解析查询字符串。有关支持的语法,请参阅 aka.ms/azure-search-full-query。”
      猜你喜欢
      • 1970-01-01
      • 2021-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-01
      • 2017-04-17
      相关资源
      最近更新 更多