Pencarian SOLR tidak termasuk data dalam Bidang JSON

Saya memiliki banyak dokumen yang termasuk dalam indeks SOLR saya. Dokumen-dokumen ini berisi bidang yang berisi data JSON.

Ketika saya melakukan kueri dengan kata kunci, saya ingin bidang JSON itu juga dicari. Saat ini tidak berfungsi.

KUERI:

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

Ada dokumen aktual yang berisi bidang JSON dengan data 'kata kunci_ke_pencarian'.

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

Bidang tersebut tampaknya dapat dicari karena saya dapat mengembalikan dokumen saat menanyakan:

{
  "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\"}",
    }
  ]}
}

Bagaimana cara mengubah kueri saya untuk memasukkan ini?

Struktur JSON:

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

person Rob Fyffe    schedule 04.03.2019    source sumber


Jawaban (1)


qf=title^300 memberi tahu Solr bidang mana yang harus dicari dan bobot yang diberikan pada setiap bidang.

qf=title^300 json akan mencari bidang title dan bidang json, dan memberikan pukulan di title peningkatan skor 300x dibandingkan dengan pukulan di json.

person MatsLindh    schedule 05.03.2019
comment
Terima kasih, ini membuat kueri menjadi sangat lambat karena ukuran bidang JSON. Haruskah saya mengindeks ini sebagai dokumen terpisah? Jika demikian, bagaimana saya menghubungkan ini dengan orang tua, karena itulah yang ingin saya kembalikan, bukan dokumen json yang baru. - person Rob Fyffe; 05.03.2019
comment
Jika ada bidang tertentu di JSON yang ingin Anda cari, indekskan bidang tersebut sebagai bidang terpisah. Berapa banyak konten yang kita bicarakan di sini? Mengekstraknya sebagai dokumen terpisah tidak akan mengurangi jumlah token yang akan dicari, jadi akan bergantung pada definisi field_name juga. - person MatsLindh; 06.03.2019
comment
Ini adalah objek JSON yang besar, lebih dari 20 ribu karakter. Saya menambahkan struktur bidang JSON ke postingan asli. Saya perlu mencari 3/4 item yang terdapat dalam objek array. - person Rob Fyffe; 06.03.2019
comment
Saya menerima jawaban ini karena berhasil. Terima kasih. - person Rob Fyffe; 07.03.2019