为 Weaviate 的架构中的属性选择正确的名称
Choosing the right name for properties in schema for Weaviate
将我的架构加载到 Weaviate 时,我收到一条错误消息,指出在上下文中找不到 属性 名称。我需要的一些属性是缩写。
这是它抱怨的架构项目:
{
"cardinality": "atMostOne",
"dataType": [
"boolean"
],
"description": "Is this a BLWS elbow yes or no",
"keywords": [
{
"keyword": "BLWS",
"weight": 1
}
],
"name": "blws"
}
这是我收到的错误消息:
2019-09-04T11:47:07.202646 ERROR: {'error': [{'message': "Could not
find the word 'blws' from the property 'blws' in the class name
'Elbow' in the contextionary. Consider using keywords to define the
semantic meaning of this class."}]}
误导性错误
错误信息
Consider using keywords to define the semantic meaning of this class
已过时,而且该建议实际上没有帮助。已经有一个 GitHub 问题需要清理:https://github.com/semi-technologies/weaviate/issues/929
在 https://github.com/semi-technologies/weaviate/issues/856 之前,可以用已知关键字替换未知的 属性 词,但 #856 消除了这种可能性。
但是,即使在更改之前您的架构也不会被接受,请参见下文。
关于 属性 个不在上下文中的名字
一个属性名字由一个或多个可识别的部分组成,在上下文中是已知的。 "part" 我的意思是,如果您使用驼峰式拼接组合多个单词,每个单词都是一个部分。例如
drivesVehicle
是有效的,因为它由两个已知词组成:drives
、vehicle
drivesAVehicle
也是有效的,因为它包含两个已知词和一个停用词 (a
)。注意:只要您的 属性 包含至少一个非停用词,停用词就可以。
drivesBlws
将无效,因为 blws
不是已知词
我们已经讨论过添加添加自定义单词的功能。该提案可以被视为已接受,但在撰写本文时,它还没有被立即列为优先级。
为什么对已知单词如此严格?
weaviate 的核心功能之一是概念搜索 ("vector-based searching"),因此 weaviate 必须能够为每个 属性 计算向量位置。只有当它识别出单词
时,它才能这样做
如何解决这个问题?
尝试用熟悉的词描述 "blws"。例如,如果 "blws" 是 "bold long wide short" 的缩写,您可以将 属性 命名为 boldLongWideShort
。如上所述,我们将在未来增加添加自定义词的功能,但目前还不支持。
将我的架构加载到 Weaviate 时,我收到一条错误消息,指出在上下文中找不到 属性 名称。我需要的一些属性是缩写。
这是它抱怨的架构项目:
{
"cardinality": "atMostOne",
"dataType": [
"boolean"
],
"description": "Is this a BLWS elbow yes or no",
"keywords": [
{
"keyword": "BLWS",
"weight": 1
}
],
"name": "blws"
}
这是我收到的错误消息:
2019-09-04T11:47:07.202646 ERROR: {'error': [{'message': "Could not find the word 'blws' from the property 'blws' in the class name 'Elbow' in the contextionary. Consider using keywords to define the semantic meaning of this class."}]}
误导性错误
错误信息
Consider using keywords to define the semantic meaning of this class
已过时,而且该建议实际上没有帮助。已经有一个 GitHub 问题需要清理:https://github.com/semi-technologies/weaviate/issues/929
在 https://github.com/semi-technologies/weaviate/issues/856 之前,可以用已知关键字替换未知的 属性 词,但 #856 消除了这种可能性。
但是,即使在更改之前您的架构也不会被接受,请参见下文。
关于 属性 个不在上下文中的名字
一个属性名字由一个或多个可识别的部分组成,在上下文中是已知的。 "part" 我的意思是,如果您使用驼峰式拼接组合多个单词,每个单词都是一个部分。例如
drivesVehicle
是有效的,因为它由两个已知词组成:drives
、vehicle
drivesAVehicle
也是有效的,因为它包含两个已知词和一个停用词 (a
)。注意:只要您的 属性 包含至少一个非停用词,停用词就可以。drivesBlws
将无效,因为blws
不是已知词
我们已经讨论过添加添加自定义单词的功能。该提案可以被视为已接受,但在撰写本文时,它还没有被立即列为优先级。
为什么对已知单词如此严格?
weaviate 的核心功能之一是概念搜索 ("vector-based searching"),因此 weaviate 必须能够为每个 属性 计算向量位置。只有当它识别出单词
时,它才能这样做如何解决这个问题?
尝试用熟悉的词描述 "blws"。例如,如果 "blws" 是 "bold long wide short" 的缩写,您可以将 属性 命名为 boldLongWideShort
。如上所述,我们将在未来增加添加自定义词的功能,但目前还不支持。