Azure搜索 - 字段值结束

时间:2016-07-07 00:47:18

标签: lucene azure-search

我正在试验Azure搜索。在我的搜索索引中,我有一个名为" description"的字段。此字段中的条目的一些示例包括:

"The trusted leader"

我正在尝试创建一个正则表达式,该表达式返回以" ted"结尾的结果。例如,我喜欢

{{1}}

要退回,但不是:

{{1}}

我尝试了以下正则表达式。但是,它不起作用:

"搜索":"名称:/.*(TED)$ /"

我不知道为什么。我以为美元符号用于表示正则表达式中字符串的结尾。它似乎应该工作。它是Azure搜索中的错误吗?

2 个答案:

答案 0 :(得分:1)

感谢您伸出援手。

在Azure搜索中,文档内容被细分为随后编入索引的术语。当您发出搜索查询时,搜索引擎会尝试将查询字词与索引中的字词进行匹配。

例如,您提供的句子将分成单个单词。这个过程称为词法分析,我将其描述为herehere。默认情况下,搜索引擎会假定您的内容采用自然语言。标准词法分析器删除标点符号并在空格上拆分。因此,你构建的正则表达式是独立匹配每个单词,而不是整个句子。

您可以使用custom analyzers自定义词法分析过程。例如,您可以使用KeywordAnalyzer告诉搜索引擎将整个文档视为一个术语。

如果有帮助,请告诉我

答案 1 :(得分:0)

正如@Yahnoosh所提到的,你必须使用自定义分析器。对于仅匹配以某些字符结尾的字词,我认为您不需要$timeout(function() { $scope.verificar_sesion(); }, 500); 。事实上,我相信你可以这样做:$

我实际上写过这个主题的博客文章。它显示了如何Azure Search queries with StartsWith, EndsWith, and Contains

我希望这会有所帮助。