【问题标题】:Solr: Is it possible to define a JSON output schema different from the index schema?Solr:是否可以定义不同于索引模式的 JSON 输出模式?
【发布时间】:2012-11-21 15:56:27
【问题描述】:

我正在尝试为使用 Solr 的 Web 应用程序实施解决方案,该解决方案将接收搜索请求、将查询发送到搜索服务器、接收其 JSON 响应并将其直接打包到响应中作为其 JSON 输出。我的主要观点是,当前的实现将查询发送到搜索服务器,接收资源的 id,实例化每个资源(将其完全加载到内存中),然后从每个资源中生成所需的 JSON 结构。所以,我想省去这一步,让应用程序成为搜索服务器的一种代理。我正在考虑使用 Solr,因为它已经提供 JSON 响应。

我现在唯一的问题是:用于填充索引和促进搜索的数据与我要输出的数据之间存在差异。在我见过的 Solr 实现中,索引数据是获得 JSON 输出的数据。

我的问题是:是否可以定义两个单独的模式:一个要索引的数据和另一个要输出的数据?这将是一个巨大的优势,因为我不喜欢索引我不会用于搜索的数据的方法。并且可以通过查询来说出想要输出哪个“可输出”参数吗?

另外,我想知道是否可以在输出之前格式化数据(例如,取一个表示秒的整数并将其格式化为 HH:MM 格式)。

【问题讨论】:

    标签: json search solr full-text-search


    【解决方案1】:

    您可以将 indexed=truestored=true 属性添加到 schema.xml 中的字段。然后你的字段将被索引和存储,这意味着你可以得到你想要的输出。

    【讨论】:

    • 是的,但是将不会被搜索的内容编入索引是一种好习惯吗?我可以影响格式吗?
    • 我看过有关索引和存储的文档,它们似乎正是我想要的。现在只剩下回答格式以及我是否可以在搜索中选择字段。
    • 如果您不想在该字段上搜索,那么您可以设置 indexed=false 和 stored=true。我不明白您所说的格式是什么意思。您可以在搜索期间使用 fl=fieldName 语法选择字段。
    • 格式的意思是:我有一个代表秒的整数。我想以 HH:MM 格式赠送它。我想要带有 2 位或 3 位小数的浮点数。只是一个例子。
    • AFAIK 你不能在模式文件中进行格式化,但是使用客户端库(例如 SolrJ)你可以在得到结果后进行。
    猜你喜欢
    • 2021-12-19
    • 2016-07-25
    • 2018-12-27
    • 1970-01-01
    • 2015-04-20
    • 1970-01-01
    • 1970-01-01
    • 2011-04-16
    • 1970-01-01
    相关资源
    最近更新 更多