elasticsearch,lucene,azure-cognitive-search,Azure,elasticsearch,Lucene,Azure Cognitive Search" /> elasticsearch,lucene,azure-cognitive-search,Azure,elasticsearch,Lucene,Azure Cognitive Search" />

Azure搜索-语音搜索实现

Azure搜索-语音搜索实现,azure,elasticsearch,lucene,azure-cognitive-search,Azure,elasticsearch,Lucene,Azure Cognitive Search,我用Azure search尝试Phoenetic搜索,运气不好。我的目标是制定一个索引配置,可以处理打字错误和容纳最终用户的语音搜索 使用下面的配置和示例数据,我试图搜索故意拼错的单词,如“softvare”或“alek”。我得到了“alek”的结果,感谢语音分析器;但“softvare”没有得到任何结果 看起来对于这个要求,语音搜索不会起作用 我找到的唯一选择是使用同义词映射。主要缺陷是我无法将语音/自定义分析器与同义词一起使用:( 你会推荐什么样的策略来处理打字错误 使用的搜索查询 ?ap

我用Azure search尝试Phoenetic搜索,运气不好。我的目标是制定一个索引配置,可以处理打字错误和容纳最终用户的语音搜索

使用下面的配置和示例数据,我试图搜索故意拼错的单词,如“softvare”或“alek”。我得到了“alek”的结果,感谢语音分析器;但“softvare”没有得到任何结果

看起来对于这个要求,语音搜索不会起作用

我找到的唯一选择是使用同义词映射。主要缺陷是我无法将语音/自定义分析器与同义词一起使用:(

你会推荐什么样的策略来处理打字错误

使用的搜索查询
  • ?api版本=2017-11-11&search=alec
  • ?api版本=2017-11-11&search=softvare
  • 这是索引配置 分析器(索引创建的一部分) 分析“软件”的API输入和输出 分析“softvare”的API输入和输出 我加载的示例数据
    如果配置正确,即使有拼写错误的单词,我也会得到结果。

    我使用Azure Search。在建议处理拼写错误单词的方法之前,请查看您的自定义分析器(我的标准)配置。它可能会告诉我们为什么它无法处理“softvare”的情况。作为DIY,您可以使用查看使用自定义分析器创建的令牌,并且它应该包含“软件”以实际匹配文档

    现在,这里有一些方法可以单独使用,也可以结合使用来处理拼写错误的单词。最好的方法因用例而异,我强烈建议您尝试这些方法,以找出您案例中最好的方法

  • 您已经熟悉语音过滤器,这是处理类似发音术语的常用方法。如果您还不熟悉,请尝试使用不同的编码器对过滤器进行编码,以评估哪种配置为您提供了最佳结果。请查看编码器列表

  • 使用Azure Search中作为Lucene查询语法一部分支持的模糊查询,该语法返回的术语与基于距离度量的原始查询术语相近。此处的限制是它只适用于单个术语。有关详细信息,请查看。示例查询类似于-
    Search=softvare~1
    ,您也可以使用术语增强在原始术语也是有效术语的情况下,为原始术语提供更多的帮助

  • 您还提到了同义词,它也用于查询拼写错误的术语。这种方法使您能够最大程度地控制处理拼写错误的过程,但也要求您事先了解术语的不同拼写错误。如果您想尝试同义词,可以使用这些方法


  • 正如你在我的帖子中看到的,我的目标是处理打字错误

    唯一简单的选择是使用内置的Lucene功能-模糊搜索。我还没有检查响应时间,因为查询类型必须设置为“完整”才能使用模糊搜索。否则,结果令人满意

    例如:
    search=softvare~&fuzzy=true&querytype=full
    将返回包含“软件”的所有文档


    为了进一步阅读,请通读

    谢谢您的回复。我已经用您要求的详细信息更新了帖子。但是分析API输出的行为与您提到的不一样。关于其他选项,我将通读并尝试其他编码器;但是Fuzzy没有帮助;同义词和拼音学没有看到我将携手共进(参考我创建的另一篇与本期相关的帖子[链接]())
     "name": "phonetichotels",  
     "fields": [
       {"name": "hotelId", "type": "Edm.String", "key":true, "searchable": false},
       {"name": "baseRate", "type": "Edm.Double"},
       {"name": "description", "type": "Edm.String", "filterable": false, "sortable": false, "facetable": false, "analyzer":"my_standard"},
       {"name": "hotelName", "type": "Edm.String", "analyzer":"my_standard"},
       {"name": "category", "type": "Edm.String", "analyzer":"my_standard"},
       {"name": "tags", "type": "Collection(Edm.String)", "analyzer":"my_standard"},
       {"name": "parkingIncluded", "type": "Edm.Boolean"},
       {"name": "smokingAllowed", "type": "Edm.Boolean"},
       {"name": "lastRenovationDate", "type": "Edm.DateTimeOffset"},
       {"name": "rating", "type": "Edm.Int32"},
       {"name": "location", "type": "Edm.GeographyPoint"}
      ],
    
    "analyzers":[
        {
          "name":"my_standard",
          "@odata.type":"#Microsoft.Azure.Search.CustomAnalyzer",
          "tokenizer":"standard_v2",
          "tokenFilters":[ "lowercase", "asciifolding", "phonetic" ]
        }
      ]
    
    {
         "analyzer":"my_standard",
         "text": "software"
      }
    
    {
        "@odata.context": "https://ctsazuresearchpoc.search.windows.net/$metadata#Microsoft.Azure.Search.V2017_11_11.AnalyzeResult",
        "tokens": [
            {
                "token": "SFTW",
                "startOffset": 0,
                "endOffset": 8,
                "position": 0
            }
        ]
    }
    
    
    {
         "analyzer":"my_standard",
         "text": "softvare"
      }
    
    {
        "@odata.context": "https://ctsazuresearchpoc.search.windows.net/$metadata#Microsoft.Azure.Search.V2017_11_11.AnalyzeResult",
        "tokens": [
            {
                "token": "SFTF",
                "startOffset": 0,
                "endOffset": 8,
                "position": 0
            }
        ]
    }
    
    
    {
             "@search.action": "upload",
             "hotelId": "5",
             "baseRate": 199.0,
             "description": "Best hotel in town for software people",
             "hotelName": "Fancy Stay",
             "category": "Luxury",
             "tags": ["pool", "view", "wifi", "concierge"],
             "parkingIncluded": false,
             "smokingAllowed": false,
             "lastRenovationDate": "2010-06-27T00:00:00Z",
             "rating": 5,
             "location": { "type": "Point", "coordinates": [-122.131577, 47.678581] }
           },
    {
             "@search.action": "upload",
             "hotelId": "6",
             "baseRate": 79.99,
             "description": "Cheapest hotel in town ",
             "hotelName": " Alec Baldwin Motel",
             "category": "Budget",
             "tags": ["motel", "budget"],
             "parkingIncluded": true,
             "smokingAllowed": true,
             "lastRenovationDate": "1982-04-28T00:00:00Z",
             "rating": 1,
             "location": { "type": "Point", "coordinates": [-122.131577, 49.678581] }
           },