【问题标题】:SOLR Query result not showing new fieldSOLR 查询结果未显示新字段
【发布时间】:2022-01-08 22:37:25
【问题描述】:

我在 schema.xml 中添加了一个新的排序字段,在 SOLR 配置中上传了 DIHConfigFile.xml 和 Schema.xml。

<field name="recommendationRank" type="string" indexed="true" stored="true" multiValued="false" required="false"/>

在这之后我确实运行了 zkcli,重新启动了 SOLR 和 zookeeper,并在 solr 中重新索引。

基于新字段的排序确实会给我返回结果,但我没有在响应中看到新字段本身。 http://localhost:48100/solr/MainSystem1/select?indent=on&q=:&sort=recommendationRank_EN_US%20desc&wt=json

查询结果更新

{
  "responseHeader":{
    "zkConnected":true,
    "status":0,
    "QTime":11,
    "params":{
      "q":"recommendationRank_EN_US:2",
      "indent":"on",
      "wt":"json",
      "debugQuery":"on",
      "_":"1638448595617"}},
  "response":{"numFound":0,"start":0,"docs":[]
  },
  "debug":{
    "rawquerystring":"recommendationRank_EN_US:2",
    "querystring":"recommendationRank_EN_US:2",
    "parsedquery":"recommendationRank_EN_US:2",
    "parsedquery_toString":"recommendationRank_EN_US:`\b\u0000\u0000\u0000\u0002",
    "explain":{},
    "QParser":"LuceneQParser",
    "timing":{
      "time":11.0,
      "prepare":{
        "time":0.0,
        "query":{
          "time":0.0},
        "facet":{
          "time":0.0},
        "facet_module":{
          "time":0.0},
        "mlt":{
          "time":0.0},
        "highlight":{
          "time":0.0},
        "stats":{
          "time":0.0},
        "expand":{
          "time":0.0},
        "terms":{
          "time":0.0},
        "debug":{
          "time":0.0}},
      "process":{
        "time":9.0,
        "query":{
          "time":8.0},
        "facet":{
          "time":0.0},
        "facet_module":{
          "time":0.0},
        "mlt":{
          "time":0.0},
        "highlight":{
          "time":0.0},
        "stats":{
          "time":0.0},
        "expand":{
          "time":0.0},
        "terms":{
          "time":0.0},
        "debug":{
          "time":1.0}}}}}

【问题讨论】:

  • 您可以使用Field List parameter fl 指定要在响应中包含哪些字段,例如fl=id,title,recommendationRank
  • 感谢@EricLavault!我尝试了您的建议,但我看到了除 RecommendationRank 之外的所有字段。

标签: solr solrcloud solrconfig


【解决方案1】:

显示的字段名称是recommendationRank,在您的查询中,您有recommendationRank_EN_US作为排序选项。那是一个复制字段吗?

我建议你做一个简单的查询,看看在重新索引你的文档后,文档是否正确地填充了新的字段值。

说 RecommendationRank:xyz(根据您从源系统中的索引逻辑您将知道的一些值)。

您能否将上述查询的输出分享给debugQuery=on,以便进一步调试。

另外,我建议您为正在使用或计划用于排序/分面/数据透视/统计/突出显示等的字段启用 docValue,以避免高字段缓存并提高查询性能。

【讨论】:

  • 是的,它是一个复制字段。附上问题@DineshNaik的回复
  • 可以清楚的看到没有匹配的记录,见"response":{"numFound":0,"start":0,"docs":[]}
  • 是的,我注意到了,但这很奇怪,因为我确实在我索引的 xml 中看到了它。
  • 我觉得奇怪的一点是为什么 parsedquery_toString 在实际搜索文本之前附加了这些特殊字符。您的架构中针对 RecommendationRank 和 RecommendationRank_EN_US 的字段类型定义是什么? "parsedquery_toString":"recommendationRank_EN_US:`\b\u0000\u0000\u0000\u0002",
  • 它定义为字符串,我也尝试将其更改为 int 但还是一样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多