所有
提前感谢您的帮助。我们正在考虑在多租户系统上使用Azure Search进行一些新的开发。我有一个关于可搜索和可过滤的基本问题。当导入数据以从documentdb搜索时,int / float / date类型不能被标记为仅可搜索的可搜索。这实际上就是我们想要的。我们正在使用Lucene API进行搜索,并且必须支持范围搜索。我的问题是,如果索引仅标记为"可过滤" vs" filterable |搜索"价值仍然是"索引"所以搜索很快,搜索不会导致"表扫描" (对使用SQL术语表示道歉)。
对于额外的功劳,是否有像SQL Server中的搜索查询分析器可以帮助我们解决这个问题?
史蒂夫
答案 0 :(得分:3)
你是对的,只有Edm.String和Collection(Edm.String)类型的字段可以标记为可搜索。当字段被标记为可搜索时,它将在存储在索引中之前进行诸如分词之类的分析。如果未标记为可搜索,则此分析的结果会导致索引中的额外空间与相同字段相比。
无法将定量字段类型(例如Edm.Int32或Edm.DateTimeOffset)标记为可搜索,因为此类数据不会受益于词法分析。但是,这些值仍将是Azure搜索索引的一部分,并且可以通过filter expressions以高性能方式查询,这不会像SQL中的“表扫描”那样。
不幸的是,Azure Search没有类似于SQL Server的查询分析器。但是,Azure Search确实提供了Analyze API,以查看提供服务的各种分析器如何处理可搜索的文本。请随意将查询分析器的建议发布到我们的User Voice网站。
希望这有帮助!
与Ashish