gpt4 book ai didi

json - 在couchdb中使用elasticsearch索引json中的名称

转载 作者:行者123 更新时间:2023-12-03 02:02:20 25 4
gpt4 key购买 nike

我正在尝试对json文档实现全文查询。我想按标题搜索。

我的json如下:

{  
"release":{
"genres":{
"genre":"Electronic"
},
"identifiers":{
"identifier":[
{
"description":"A-Side",
"value":"MPO SK 032 A1 G PHRUPMASTERGENERAL T27 LONDON",
"type":"Matrix / Runout"
},
{
"description":"B-Side",
"value":"MPO SK 032 B1",
"type":"Matrix / Runout"
},
{
"description":"C-Side",
"value":"MPO SK 032 C1",
"type":"Matrix / Runout"
},
{
"description":"D-Side",
"value":"MPO SK 032 D1",
"type":"Matrix / Runout"
}
]
},
"status":"Accepted",
"videos":{
"video":[
{
"title":"The Persuader (Jesper Dahlbäck) - Östermalm",
"duration":290,
"description":"The Persuader (Jesper Dahlbäck) - Östermalm",
"src":"http://www.youtube.com/watch?v=AHuQWcylaU4",
"embed":true
},
{
"title":"The Persuader - Vasastaden",
"duration":380,
"description":"The Persuader - Vasastaden",
"src":"http://www.youtube.com/watch?v=5rA8CTKKEP4",
"embed":true
},
{
"title":"The Persuader-Stockholm-Sodermalm",
"duration":335,
"description":"The Persuader-Stockholm-Sodermalm",
"src":"http://www.youtube.com/watch?v=QVdDhOnoR8k",
"embed":true
},
{
"title":"The Persuader - Norrmalm",
"duration":289,
"description":"The Persuader - Norrmalm",
"src":"http://www.youtube.com/watch?v=hy47qgyJeG0",
"embed":true
}
]
},
"labels":{
"label":{
"catno":"SK032",
"name":"Svek"
}
},
"companies":{
"company":[
{
"id":271046,
"catno":"",
"name":"The Globe Studios",
"entity_type_name":"Recorded At",
"resource_url":"http://api.discogs.com/labels/271046",
"entity_type":23
},
{
"id":56025,
"catno":"",
"name":"MPO",
"entity_type_name":"Pressed By",
"resource_url":"http://api.discogs.com/labels/56025",
"entity_type":17
}
]
},
"styles":{
"style":"Deep House"
},
"formats":{
"format":{
"text":"",
"name":"Vinyl",
"qty":2,
"descriptions":{
"description":[
"12\"",
"33 ⅓ RPM"
]
}
}
},
"country":"Sweden",
"id":1,
"released":"1999-03-00",
"artists":{
"artist":{
"id":1,
"anv":"",
"name":"Persuader, The",
"role":"",
"tracks":"",
"join":""
}
},
"title":"Stockholm",
"master_id":5427,
"tracklist":{
"track":[
{
"position":"A",
"duration":"4:45",
"title":"Östermalm"
},
{
"position":"B1",
"duration":"6:11",
"title":"Vasastaden"
},
{
"position":"B2",
"duration":"2:49",
"title":"Kungsholmen"
},
{
"position":"C1",
"duration":"5:38",
"title":"Södermalm"
},
{
"position":"C2",
"duration":"4:52",
"title":"Norrmalm"
},
{
"position":"D",
"duration":"5:16",
"title":"Gamla Stan"
}
]
},
"data_quality":"Complete and Correct",
"extraartists":{
"artist":{
"id":239,
"anv":"",
"name":"Jesper Dahlbäck",
"role":"Music By [All Tracks By]",
"tracks":"",
"join":""
}
},
"notes":"The song titles are the names of Stockholm's districts."
}
}

我已经使用以下命令在elasticsearch中将以上文档编入索引:
curl -X PUT "http://127.0.0.1:9200/_river/smalldiscogs/_meta" -d" 
{
""type"": ""couchdb"",
""couchdb"": {
""host"": ""localhost"",
""port"": 5984,
""db"": ""smalldiscogs"",
""filter"": null
},
""index"": {
""index"": ""smalldiscogs"",
""type"": ""smalldiscogs"",
""bulk_size"": ""100"",
""bulk_timeout"": ""10000ms""
}
}"

我的问题是如何仅索引标题字段。请帮忙?

最佳答案

由于您使用的是elasticsearch-river-couchdb插件,因此可以使用groovy脚本配置river,该脚本将删除除您指定的字段以外的所有字段。

插件的official documentation中给出了一个示例,只是将以下script添加到couchdb对象中:

curl -XPUT 'http://127.0.0.1:9200/_river/smalldiscogs/_meta' -d ' 
{
"type": "couchdb",
"couchdb": {
"host": "localhost",
"port": 5984,
"db": "smalldiscogs",
"filter": null,
"script": "var title = ctx.doc.release.title; ctx.doc.remove("release"); ctx.doc.title = title;"
},
"index": {
"index": "smalldiscogs",
"type": "smalldiscogs",
"bulk_size": "100",
"bulk_timeout": "10000ms"
}
}'

该脚本看起来像这样,它将简单地从文档中删除 title一个异常(exception)的所有字段:
var title = ctx.doc.release.title;     <--- remember the title
ctx.doc.remove("release"); <--- remove all fields
ctx.doc.title = title; <--- re-add only the title field

关于json - 在couchdb中使用elasticsearch索引json中的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30904031/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com