搜索其他单词中包含的单词

时间:2015-02-05 15:21:04

标签: azure-search

让我们说索引中的一个字段包含“创业”这个词。当我搜索企业家这个词时,我没有得到那份文件。但企业家*确实如此。

是否存在一个模式/参数,其中查询搜索的文档中包含搜索文本中包含单词标记的单词?

另一个例子是,当你正在寻找马特时,找到一个有马修的文件。

谢谢

2 个答案:

答案 0 :(得分:2)

我们目前没有一种模式,其中所有输入字词都被视为前缀。您可以根据具体情况选择一些选项:

  1. 将目标可搜索字段设置为特定于语言的分析器。从语言学的角度来看,这是最好的选择。当你这样做的时候,如果适合我们的语言我们会做什么,这有助于诸如" run"与#34;跑步"。它不会帮助你的特定样本"创业"但一般而言,这有助于召回。

  2. 在将搜索输入发送到搜索之前将其拆分并添加" "对所有人。根据您的目标语言,这是相对容易的(即,如果有空格)或非常困难。请注意,前缀不能与词干结合好,除非将它们考虑在内并搜索两者(例如搜索= aa bb - >(aa | aa )(bb | bb *))

  3. 倾向于建议。这是一个不同的角度,可能与您的场景相匹配,也可能不一致。搜索建议擅长部分/前缀匹配,并且他们会帮助用户使用正确的条款。您可以阅读有关此here

  4. 的更多信息

答案 1 :(得分:0)

也许这个页面可能会引起关注..?

https://msdn.microsoft.com/en-us/library/azure/dn798927.aspx

search=[string]

可选。要搜索的文本。搜索所有可搜索的字段 默认,除非指定了searchFields。搜索可搜索字段时,搜索文本本身是标记化的,因此多个术语可以用空格分隔(例如:search = hello world)。要匹配任何术语,请使用*(这对布尔过滤器查询很有用)。 省略此参数与将其设置为 *具有相同的效果。有关搜索语法的详细信息,请参阅Azure搜索中的简单查询语法。