【问题标题】:Find Specific value from multivalued field in solr从 solr 中的多值字段中查找特定值
【发布时间】:2022-07-28 01:29:00
【问题描述】:
{
     Name : "A";
     Id:["4","205","105"];
    },
    {
     Name : "B";
     Id:["4","205"];
    },
    {
     Name : "C";
     Id:["205"];
    },
    {
     Name : "D";
     Id:["205","205"];
    },

    

我有上面的示例数据,其中 Id 是多值字段。

现在我必须找到只有 Id = 205 的输出结果。 接受的输出名称将是 C 和 D。

【问题讨论】:

  • 添加一个仅包含列表唯一值的附加字段和包含该字段中标记数的第二个字段。查询id_unique_count:1 AND id_unique:205
  • 感谢您的回答。您能否建议如何在新字段中存储唯一值和唯一计数?
  • 这取决于您现在如何索引内容。如果您要从自己的应用程序发送内容以进行索引,请在创建要发送到 Solr 的文档时直接执行此操作。如果您不自己控制索引应用程序,您可以使用带有CountFieldValuesUpdateProcessorFactoryUniqFieldsUpdateProcessorFactory 的更新处理器。
  • 这是我的多值字段。我想在此字段中的同一应用程序中计数此字段 并将唯一值存储在同一应用程序中field 比如何更新这两个字段。可以分享一下 schema.xml 和 solrconfig.xml 的代码吗?
  • 为您的问题添加相关细节;您现在还没有解释如何为内容编制索引 - 因为这可以确定实现目标的最简单途径。您无需对架构进行任何更改即可运行更新处理器;您为每个请求处理程序配置它并在solrconfig.xml 中定义它们 - 如果您无法更改索引代码(或希望将所有内容保留在 Solr 中),那就是这样做的方法。有关示例,请参阅solr.apache.org/guide/solr/latest/configuration-guide/…,并将您尝试过的内容添加到您的问题中。

标签: solr lucene search-engine


【解决方案1】:

您可以使用fq = Id:([* TO 204 ][205 TO *])。 在这些查询中,只有 ID 为 205 的值才会出现。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多