graph-databases - 无法让 ArangoSearch 视图在 ArangoDB 中正常工作
问题描述
我在使用 ArangoSearch 时遇到问题。
这是我在一个名为的集合中的一些虚拟数据things
(为简单起见,我删除了它们的每个“_id”、“_key”和“_rev”属性):
{"text":"eat a cookie"}
{"text":"I like cookies"}
{"text":"Timmy how are u"}
{"text":"I read a book on elves"}
我有一个看起来像这样的视图(我称之为practice
):
{
"writebufferIdle": 64,
"type": "arangosearch",
"primarySortCompression": "lz4",
"links": {
"things": {
"analyzers": [
"text_en",
"identity"
],
"fields": {
"text": {
"analyzers": [
"text_en"
]
}
},
"includeAllFields": true,
"storeValues": "none",
"trackListPositions": false
}
},
"primarySort": [],
"writebufferSizeMax": 33554432,
"consolidationPolicy": {
"type": "tier",
"segmentsBytesFloor": 2097152,
"segmentsBytesMax": 5368709120,
"segmentsMax": 10,
"segmentsMin": 1,
"minScore": 0
},
"cleanupIntervalStep": 2,
"commitIntervalMsec": 1000,
"storedValues": [],
"id": "138993",
"globallyUniqueId": "h23A40B2F96C2/138993",
"writebufferActive": 0,
"consolidationIntervalMsec": 1000
}
当我进行如下 AQL 搜索时,它正确返回 4:
FOR docs IN practice COLLECT WITH COUNT INTO num RETURN num
但是当我进行这样的 AQL 搜索时,我大多会得到空数组:
FOR doc IN practice
SEARCH ANALYZER(doc.text == "cookie", "text_en")
RETURN doc
(奇怪的是,有一两个词可以与上述内容一起使用,但大多数人不会 - 例如,“cookie”返回一个空数组,但“how”返回一个匹配项)
知道我做错了什么吗?
谢谢
解决方案
索引text
字段已text_en
应用处理,但您没有将其应用于搜索词。
ANALYZER(doc.text == "cookie", "text_en")
该ANALYZER()
函数只为此处的索引数据选择分析器。
根据分析器如何转换存储的属性值,可能会因为词干提取而出现不匹配。所有内置的文本分析器都启用了词干提取。
试着RETURN TOKENS("cookie", "text_en")
看看分析器对这个词做了什么。
这应该找到两件事:
ANALYZER(doc.text == TOKENS("cookie", "text_en")[0], "text_en")
推荐阅读
- rpa - 操纵 Blueprism 集合
- python - 如何在 Dash (Plotly) 中使用本地网络摄像头在登录页面中显示直播?
- android - expo-image-manipulator 不会从 expo-image-picker 中获取 uri
- c# - 这是应用什么排序方法,该方法的算法复杂度是多少
- export - 可以用 PLE 导出实验/模拟屏幕吗?
- java - 如何将两个抽象 InheritanceType.TABLE_PER_CLASS 实体与 OneToMany 关系映射?
- python - 将带有函数的json文件解析为数据框进行分析
- arrays - 如何通过 C 中的给定输入创建和打印字符串数组?
- database - 基于过滤器的Mongo子文档中的总和数量
- typescript - 导出未定义变量时如何捕获隐式任何?