SolrJ 的 ResponseParsers 之间的区别
Difference between SolrJ's ResponseParsers
SolrJ 库为 Solr 的响应提供不同的解析器。
即:
- 二进制响应解析器
- StreamingBinaryResponseParser
- NoOpResponseParser
- XMLResponseParser
遗憾的是文档并没有对它们说太多,除了:
SolrJ uses a binary format, rather than XML, as its default format.
Users of earlier Solr releases who wish to continue working with XML
must explicitly set the parser to the XMLResponseParser, like so:
server.setParser(new XMLResponseParser());
所以看起来 XMLResponseParser 主要用于遗留用途。
- 其他解析器之间有什么区别?
- 我可以通过使用其他解析器来改进 XMLResponseParser 的性能吗?
二进制流解析器旨在直接与 Java 对象格式(二进制 POJO 格式)一起工作,以尽可能顺利地在客户端创建数据对象。
XML 解析器旨在使用没有任何真正替代品的旧响应格式(因为 Solr 中没有二进制响应格式)。考虑 XML 格式的所有选项比直接使用二进制格式要多得多。
StreamingBinaryResponseParser 与 BinaryResponseParser 的工作相同,但设计用于生成流式文档(即不创建文档列表并 returning 该列表,而是 return 每个文档本身而不必同时将它们全部保存在内存中)可能。请参阅 SOLR-2112 了解该功能的说明以及添加它的原因。
最后,是的,如果您使用的是 SolrJ,请使用二进制响应格式,除非您有充分的理由使用基于 XML 的格式。如果你不得不问这个问题,你可能最好使用二进制格式。
SolrJ 库为 Solr 的响应提供不同的解析器。
即:
- 二进制响应解析器
- StreamingBinaryResponseParser
- NoOpResponseParser
- XMLResponseParser
遗憾的是文档并没有对它们说太多,除了:
SolrJ uses a binary format, rather than XML, as its default format. Users of earlier Solr releases who wish to continue working with XML must explicitly set the parser to the XMLResponseParser, like so:
server.setParser(new XMLResponseParser());
所以看起来 XMLResponseParser 主要用于遗留用途。
- 其他解析器之间有什么区别?
- 我可以通过使用其他解析器来改进 XMLResponseParser 的性能吗?
二进制流解析器旨在直接与 Java 对象格式(二进制 POJO 格式)一起工作,以尽可能顺利地在客户端创建数据对象。
XML 解析器旨在使用没有任何真正替代品的旧响应格式(因为 Solr 中没有二进制响应格式)。考虑 XML 格式的所有选项比直接使用二进制格式要多得多。
StreamingBinaryResponseParser 与 BinaryResponseParser 的工作相同,但设计用于生成流式文档(即不创建文档列表并 returning 该列表,而是 return 每个文档本身而不必同时将它们全部保存在内存中)可能。请参阅 SOLR-2112 了解该功能的说明以及添加它的原因。
最后,是的,如果您使用的是 SolrJ,请使用二进制响应格式,除非您有充分的理由使用基于 XML 的格式。如果你不得不问这个问题,你可能最好使用二进制格式。