集合中的 Azure 搜索索引数据 (Edm.String) 属性
Azure search Indexing data in Collection(Edm.String) attribute
目前,我们正在使用 Bot 框架 SDK(问答场景)构建一个知识库机器人,我们在其中索引 Azure 搜索中的数据,索引的结构包含可搜索的 Edm.String(de.Microsoft) 属性如 (Plain Text, title) 和可搜索的 Collection(Edm.String) (de.Microsoft) 属性如 (keywords, product categories and mutual questions ).
相互问题将由管理员通过自定义 UI 提供,所以我的问题是存储(索引)由管理员提供的相互问题更好,还是更好删除停止 words/noise 个词后索引相互问题?
如您所知,将使用该机器人的最终用户不会像现在这样使用相同的索引问题,他们可能会以不同的方差来制定问题,我已经进行了一些手动测试,我发现场景是删除关键字后会变得更好,而在其他情况下会更糟,我只想了解当 Azure 搜索查询数据类型字符串列表的可搜索属性时发生了什么。
我在发送搜索请求时使用 searchMode: any 和 queryType: full,下面是一个示例删除停用词前和删除停用词后相互提问。
示例 1
"MutualQuestions": [
"Kann ich im Konto ein individuelles Entgelt anlegen, obwohl es im Produkt keines gibt?",
"Ich möchte eine andere Zinsberechnungsmethode als im Produkt einstellen."
],
"MutualQuestionsNoNoise": [
"Konto individuelles Entgelt anlegen, Produkt",
"Zinsberechnungsmethode Produkt einstellen."
]
示例 2
{
"MutualQuestions": [
"Wo binde ich Produkte auf der Internetseite ein?",
"Wie binde ich Produkte in die Internetseite ein?"
],
"MutualQuestionsNoNoise": [
"binde Produkte Internetseite"
]
}
提前致谢
句子中只有关键短语可以提高搜索结果得分。如果用户搜索特定关键字,则仅包含此关键字的字符串将获得更好的分数。例如,如果您搜索 'weekend trip',那么句子 'awesome weekend trip' 的得分将高于 'very awesome weekend trip'。如果您使用 language-specific analyzer,该语言的停用词将在索引和搜索时自动删除。
但是,正如您所指出的,这取决于用户如何表达他们的查询。
How full text search works in Azure Search 很好地描述了不同的查询类型和搜索模式,以及两者如何影响评分。注意:字符串的集合被视为与连接的字符串相同。即:'awesome trip' 等同于 ['awesome', 'trip'].
通常选择查询类型和搜索模式需要对代表性查询进行一些实验。对于您的情况,我会尝试删除 "noise" 并使用 searchMode=any 的方法。我不认为 queryType 在这种情况下很重要。但是,这取决于您的用户的高级程度。如果你想支持正则表达式等,那么queryType=full会更合适。
目前,我们正在使用 Bot 框架 SDK(问答场景)构建一个知识库机器人,我们在其中索引 Azure 搜索中的数据,索引的结构包含可搜索的 Edm.String(de.Microsoft) 属性如 (Plain Text, title) 和可搜索的 Collection(Edm.String) (de.Microsoft) 属性如 (keywords, product categories and mutual questions ).
相互问题将由管理员通过自定义 UI 提供,所以我的问题是存储(索引)由管理员提供的相互问题更好,还是更好删除停止 words/noise 个词后索引相互问题?
如您所知,将使用该机器人的最终用户不会像现在这样使用相同的索引问题,他们可能会以不同的方差来制定问题,我已经进行了一些手动测试,我发现场景是删除关键字后会变得更好,而在其他情况下会更糟,我只想了解当 Azure 搜索查询数据类型字符串列表的可搜索属性时发生了什么。
我在发送搜索请求时使用 searchMode: any 和 queryType: full,下面是一个示例删除停用词前和删除停用词后相互提问。
示例 1
"MutualQuestions": [
"Kann ich im Konto ein individuelles Entgelt anlegen, obwohl es im Produkt keines gibt?",
"Ich möchte eine andere Zinsberechnungsmethode als im Produkt einstellen."
],
"MutualQuestionsNoNoise": [
"Konto individuelles Entgelt anlegen, Produkt",
"Zinsberechnungsmethode Produkt einstellen."
]
示例 2
{
"MutualQuestions": [
"Wo binde ich Produkte auf der Internetseite ein?",
"Wie binde ich Produkte in die Internetseite ein?"
],
"MutualQuestionsNoNoise": [
"binde Produkte Internetseite"
]
}
提前致谢
句子中只有关键短语可以提高搜索结果得分。如果用户搜索特定关键字,则仅包含此关键字的字符串将获得更好的分数。例如,如果您搜索 'weekend trip',那么句子 'awesome weekend trip' 的得分将高于 'very awesome weekend trip'。如果您使用 language-specific analyzer,该语言的停用词将在索引和搜索时自动删除。
但是,正如您所指出的,这取决于用户如何表达他们的查询。
How full text search works in Azure Search 很好地描述了不同的查询类型和搜索模式,以及两者如何影响评分。注意:字符串的集合被视为与连接的字符串相同。即:'awesome trip' 等同于 ['awesome', 'trip'].
通常选择查询类型和搜索模式需要对代表性查询进行一些实验。对于您的情况,我会尝试删除 "noise" 并使用 searchMode=any 的方法。我不认为 queryType 在这种情况下很重要。但是,这取决于您的用户的高级程度。如果你想支持正则表达式等,那么queryType=full会更合适。