lucene Azure认知搜索-何时使用不同的搜索和索引分析器?

6yoyoihd  于 2022-11-23  发布在  Lucene
关注(0)|答案(1)|浏览(143)

我试图了解为Azure Search中的搜索和索引配置不同分析器的目的是什么。请参阅:https://learn.microsoft.com/en-us/rest/api/searchservice/create-index#-field-definitions-
根据我的理解,索引分析器的工作是将输入文档分解成单个的标记。通过这个过程,它可能会应用多种转换,如将内容小写、删除标点和空格,甚至删除整个单词。
如果令牌已经被处理,那么搜索分析器有什么用呢?
最初,我以为它会对搜索查询本身应用类似的过程,但是在这个阶段设置一个与用于索引文档的分析器不同的分析器会不会完全破坏搜索结果呢?如果索引分析器将所有内容都小写,而搜索分析器不将查询小写,这难道不意味着你永远不会得到匹配的查询与大写字符?如果搜索分析器不分割标记的空白?当查询中包含空格时,您不会得到匹配项吗?
假设这确实是两个分析器一起工作的方式,那么为什么要设置两个不同的分析器呢?

sd2nnvve

sd2nnvve1#

您对索引和搜索分析器之间区别的理解是正确的。一个有价值的示例场景是使用ngram进行索引而不是搜索项。因此,这将允许带有“cat”的文档生成“c”、“ca”“cat”,但您不一定要对搜索词应用ngram,因为这会降低查询的性能,而且“没有必要,因为文档已经产生了ngram。希望这是有意义的!

相关问题