SOLR搜索不包括JSON字段中的数据

时间:2019-03-04 22:09:30

标签: search solr lucene solrconfig

我的SOLR索引中包含很多文件。这些文档包含一个包含JSON数据的字段。

当我使用关键字执行查询时,我希望也搜索该JSON字段。现在它不起作用。

查询:

{
  "responseHeader":{
    "status":0,
    "QTime":0,
    "params":{
      "q":"keyword_to_search",
      "defType":"edismax",
      "qf":"title^300",
      "fl":"field_name:[json]",
      "wt":"json",
      "_":"1551735180672"
    }
  },
  "response":{
    "numFound":0,
    "start":0,
    "docs":[]
  }
}

有些实际文档包含一个带有数据“ keyword_to_search”的JSON字段。

"field_name":"{\"field_key\": \"keyword_to_search\"}",

该字段似乎是可搜索的,因为我可以在查询时返回文档:

{
  "responseHeader":{
    "status":0,
    "QTime":0,
    "params":{
      "q":"{!term f=field_name}keyword_to_search",
      "_":"1551735532524"
    }
  },
  "response":{"numFound":1,"start":0,"docs":[
    {
    ...
    "field_name":"{\"field_key\": \"keyword_to_search\"}",
    }
  ]}
}

如何修改我的查询以包括此内容?

JSON结构:

{
  ...
  "field_name": "field_value",
  "columns": [
    ...
    {
        "nested_key": "nested_value_1"
    },
    {
        "nested_key": "nested_value_1"
    },
  ],
}

1 个答案:

答案 0 :(得分:2)

qf=title^300告诉Solr应该搜索哪个字段以及赋予每个字段的权重。

qf=title^300 json会同时搜索title字段和json字段,并为title中的匹配提供比其匹配{{1 }}。