Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
为什么要使用不同的分析器进行索引和查询,是否有充分的理由?在示例 schema.xml 文件中,对于 text_en_splitting,例如,索引分析器不进行同义词扩展,但查询进行。这只是为了保持索引尽可能小吗?同样,对于 WordDelimiterFilterFactory,索引分析器有 catenateWords="1" 和 catenateNumbers="1",而查询分析器将它们设置为 0。这只是为了保持查询小(快)吗?这些优化真的值得两个“几乎相同”的分析仪的维护噩梦吗?
谢谢!
您不需要在索引时和查询时进行同义词扩展,只需要这两者之一。想想看,如果你只在索引时这样做,所有列出的单词都会被它的所有同义词补充。 然后,当您使用这些词中的任何一个查询索引时,您将匹配所有经过扩展的文档。
没有必要在两端扩展。并且建议您在索引时执行此操作,因为这样可以加快查询时间。
恕我直言,一般规则应该是尽可能地芯片(包括在查询时扩展同义词的几毫秒),以使用户体验更好。而且这些筹码会大量堆积。
你可以问同样的问题,为什么我们鼓励文档中的数据冗余。