我有一个看起来大致相似的模型(在JSON中):
{"gender": "female",
"name": [
{"family": "Smith",
"given": ["Samantha"],
"middle": ["Lee"]]}}
Run Code Online (Sandbox Code Playgroud)
有大约6M的记录具有这样的结构.我需要使用OR子句在人名的所有组件上提供全文搜索.例如,如果用户输入"smith",我需要检查所有给定,中间和姓氏.
在Datomic中,我制作了一个模式:
{:db/ident :model/name
:db/valueType :db.type/ref
:db/isComponent true
:db/cardinality :db.cardinality/many}
{:db/ident :model.name/family
:db/valueType :db.type/string
:db/cardinality :db.cardinality/one
:db/fulltext true}
{:db/ident :model.name/given
:db/valueType :db.type/string
:db/cardinality :db.cardinality/many
:db/fulltext true}
{:db/ident :model.name/middle
:db/valueType :db.type/string
:db/cardinality :db.cardinality/many
:db/fulltext true}
Run Code Online (Sandbox Code Playgroud)
注意,我提供了这些属性的全文索引.现在,当我通过单个属性查询时family,性能很好(大约100ms):
(def query-all
'[:find [(rand 100 ?model) ...]
:in $ ?search
:where
[(fulltext $ :model.name/family ?search) [[?name _ _ _]]]
[?model :model/name ?name]])
Run Code Online (Sandbox Code Playgroud)
但是当我使用OR子句添加其他条件时,性能会急剧下降(20秒):
(def query-all
'[:find [(rand 100 ?model) ...]
:in $ …Run Code Online (Sandbox Code Playgroud) 我正在开发一个可与临床健康记录配合使用的应用程序。这个想法是获取 FHIR 资源并以某种方式处理它们。虽然获取 FHIR 数据很容易,但我无法找出该记录属于哪个帐户或组织。
HKClinicalRecord两个类都没有可能HKFHIRResource指向帐户或医疗机构的方法或字段。
同时,标准的 Apple Health 应用程序确实知道每条记录的帐户。它甚至允许打开它并查看患者的数据(参见屏幕截图)。苹果的应用程序可以按组织过滤记录。这正是我在我的应用程序中寻找的东西。有人可以告诉我如何在我的代码中获取这些信息吗?
截图: