【问题标题】:Can indexer in azure search use any other character instead of , as a delimiter to break words and put in a collection type azure search index field?天蓝色搜索中的索引器可以使用任何其他字符而不是 , 作为分隔符来分词并放入集合类型的天蓝色搜索索引字段吗?
【发布时间】:2019-12-16 15:34:53
【问题描述】:

我正在运行索引器以将数据播种到 azure 搜索索引,并且索引器的数据源是 sql 视图。 Azure 使用逗号分隔符将数据拆分并放入集合类型字段。是否可以配置任何其他分隔符来代替逗号?

假设我有这个字符串列表,我想成为索引集合类型字段的一部分 1.)"item1, test" 2.)"item2, test"。从我的 sql 视图中,我将此数据作为 item1~ test,item2~ test 返回。我将每个单词中的 , 替换为 ~ 因为 azure 将 , 作为其集合类型字段的分隔符,我不希望 azure 在错误的位置破坏我的字符串。现在 azure 将此数据保存为“item1~ test”、“item2~ test”。当我返回搜索结果时,我将 ~ 替换为 ,

我在使用这种技术时面临的问题是,当用户搜索 item1 时,它会将 item1~ 视为部分匹配,因为 ~ 并权衡它的分数。在后台,这对我来说只是 item1,我希望将其视为完全匹配。

所以我想知道是否可以使用任何其他分隔符来代替 ,这样我就不必将其替换为特殊字符并将其替换回搜索结果中。

【问题讨论】:

    标签: azure azure-cognitive-search indexer


    【解决方案1】:

    您能否更改视图的输出以将 SQL 字符串返回为 JSON 字符串数组的字符串?

    如果字符串表示 JSON 字符串数组,则可以使用 SQL 字符串填充 Collection(Edm.String) 字段:["red", "white", "blue"] 【SQL数据映射】1

    【讨论】:

    • 非常感谢!除了这些类型的记录 ["red "The Red" red it is"、"white"、"blue"] 之外,此方法有效。您对如何处理这些数据有什么建议吗?
    • 所有 SQL 字符串都需要格式正确的 JSON 才能正常工作。看看这个例子,它的格式似乎不是很好,所以你需要对数据进行某种额外的转换,然后才能使用我们的内置映射。
    猜你喜欢
    • 1970-01-01
    • 2020-03-02
    • 1970-01-01
    • 2017-12-15
    • 2021-08-20
    • 2018-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多