Поиск SOLR без учета данных в поле JSON - PullRequest
0 голосов
/ 05 марта 2019

У меня есть куча документов, включенных в мой индекс SOLR.Эти документы содержат поле, содержащее данные JSON.

Когда я выполняю запрос с ключевым словом, я хочу, чтобы это поле JSON также было найдено.Сейчас это не работает.

QUERY:

{
  "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":[]
  }
}

Существуют фактические документы, содержащие поле JSON с данными 'keyword_to_search'.

"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 голосов
/ 05 марта 2019

qf=title^300 сообщает Solr, какие поля он должен искать, и вес, заданный для каждого поля.

qf=title^300 json будет выполнять поиск как в поле title, так и в поле json и попадать вtitle увеличение в 300 раз по сравнению с ударом по нему json.

...