我想在以下文档中创建一个ArangoSearch视图:
"Title": [
{
"lang": "en",
"value": "Game of thrones"
},
{
"lang": "fr",
"value": "Throne de fer"
}
]
}
我试图像这样链接视图:
{"links": {
"SearchTest": {
"analyzers": [
"identity",
"text_en",
"text_fr"
],
"fields": {
"Title[0].value": {
"analyzers": [
"text_en"
]
},
"Title[1].value": {
"analyzers": [
"text_fr"
]
}
},
"includeAllFields": true,
"storeValues": "id",
"trackListPositions": false
}
}}
但是我似乎没有工作
这是查询
FOR d IN SearchTestVW SEARCH PHRASE(d.Title[0].value,'Game','text_en') RETURN d
它不返回任何结果。甚至有可能这样做吗?我已经尝试过使用根属性,并且效果很好。但是我们的文档的结构是这样的。
答案 0 :(得分:0)
可以使用fields: { "objectName": fields: "fieldName"}
嵌套。如果您在“根”级别上定义所有分析器并将includeAllFields
设置为true
,则甚至不需要单独指定字段。
您可以在对象级别使用分析器,并仅定义搜索索引应涵盖的属性。这样可以减小索引的大小,并且您可以排除可能只会在结果中添加“噪音”的字段。
"links": {
"SearchTest": {
"analyzers": [
"identity"
],
"fields": {
"Title": {
"analyzers": [
"text_en"
],
"fields": {
"value": {},
"lang": {}
}
}
},
"includeAllFields": false,
"storeValues": "none",
"trackListPositions": false
现在这应该可行:
FOR d IN SearchTestVW SEARCH PHRASE(d.Title.value,'Game','text_en') RETURN d