필터링을 수행하는 것을 Datomic 내가 효율적으로 같은 쿼리를 지원하는 방법 궁금하네요 does not support pagination : 그 :history/body
일치효율적인 Datomic 쿼리를 감안할 때 매겨진 세트
찾아
:history/body
에 처음 30 개체를 타고 실체 일부 정규식.{:find [?e] :where [[?e :history/body ?body] [(re-find #"foo.*bar$" ?body)]]}
관찰 : 여기
은 나 혼자 정규식 일치 할 거라고 방법
- 것과 내가 할 수 다음
(take ...)
을,하지만 그건에 대해 일치로 하지 동일 처음 30 개의 개체. - 나는 수동
re-find
로 필터링 모든 기관,take 30
를 얻을 수 있지만, 난 그냥take 30
에 그들 모두를 받고, 30M 기관이있는 경우 격렬하게 비효율적 인 것 같습니다 수 있습니다. 또한 30M 개체에서 20M을 가져 와서re-find
을 통해 필터링하고 싶다면 어떻게해야합니까?
Datomic 문서가 쿼리를 로컬로 실행하는 방법에 대해 이야기하지만, 나는 52,913 개체의 집합에 메모리 변환을하고 해봤 (부여, 그들은 완전히 touch
에드이야) 그리고 ~ 5 초 걸립니다. 수백만 또는 수십억의 사람들이 얼마나 나쁜지 상상해보십시오.
감사합니다. 나는 기회가있을 때 이것을 통해 일하게 될 것입니다. 좋은 출발처럼 보입니다. – devth