(cloud) makes ledger running balances fast and smooth
This commit is contained in:
60
scratch-sessions/test_solr.clj
Normal file
60
scratch-sessions/test_solr.clj
Normal file
@@ -0,0 +1,60 @@
|
||||
;; This buffer is for Clojure experiments and evaluation.
|
||||
|
||||
;; Press C-j to evaluate the last expression.
|
||||
|
||||
;; You can also press C-u C-j to evaluate the expression and pretty-print its result.
|
||||
|
||||
(require '[clj-http.client :as client])
|
||||
(require ' [clojure.data.json :as json])
|
||||
|
||||
|
||||
(defn upsert-schema []
|
||||
(client/post
|
||||
"http://localhost:8983/solr/gettingstarted/schema"
|
||||
{:headers {"Content-Type" "application/json"}
|
||||
:method "POST"
|
||||
:body (json/write-str {"add-field" [{"name" "client-id"
|
||||
"type" "string"}
|
||||
{"name" "order-date"
|
||||
"type" "pdate"}]})
|
||||
}))
|
||||
|
||||
(defn load-sales-orders []
|
||||
(clojure.pprint/pprint
|
||||
(doseq [[client code] (dc/q '[:find ?c ?code :where [?c :client/code ?code]] (dc/db conn))
|
||||
:let [_ (println "loading" code)]
|
||||
|
||||
batch (->> (dc/qseq '[:find ?so ?date ?client-id
|
||||
:in $ ?client-id
|
||||
:where
|
||||
[?so :sales-order/client ?client-id]
|
||||
[?so :sales-order/date ?date]
|
||||
]
|
||||
(dc/db conn)
|
||||
client)
|
||||
(map (fn [[so date client-id]]
|
||||
{"id" so
|
||||
"order-date" (str date)
|
||||
"client-id" (str client-id)}))
|
||||
(partition-all 1000)
|
||||
)]
|
||||
(print ".")
|
||||
(flush)
|
||||
(client/post
|
||||
"http://localhost:8983/solr/gettingstarted/update?commitWithin=60000"
|
||||
{:headers {"Content-Type" "application/json"}
|
||||
:method "POST"
|
||||
:body (json/write-str batch)}))))
|
||||
|
||||
|
||||
(comment
|
||||
(try
|
||||
(upsert-schema)
|
||||
(catch Exception e
|
||||
(println e)))
|
||||
|
||||
(load-sales-orders)
|
||||
|
||||
(dc/pull (dc/db conn) '[:client/code :db/id] [:client/code "NGOP"])
|
||||
|
||||
)
|
||||
Reference in New Issue
Block a user