|
4 | 4 | [codes.clj.docs.extractor.core :as core] |
5 | 5 | [codes.clj.docs.extractor.datalevin :as datalevin] |
6 | 6 | [datalevin.core :as d] |
| 7 | + [datalevin.interpret :refer [inter-fn]] |
7 | 8 | [datalevin.search-utils :as su] |
8 | 9 | [datalevin.util :as util]) |
9 | 10 | (:import [java.io File])) |
|
58 | 59 | db (d/db conn) |
59 | 60 |
|
60 | 61 | datoms (->> (d/fulltext-datoms db |
61 | | - "->" |
| 62 | + "." |
62 | 63 | {:top 30 |
63 | 64 | :domains ["definition-name" |
64 | 65 | "namespace-name" |
|
144 | 145 | ; tests with fulltext and analyzer |
145 | 146 | (let [query-analyzer (su/create-analyzer |
146 | 147 | {:tokenizer (datalevin/merge-tokenizers |
147 | | - (su/create-regexp-tokenizer #"[.]+") |
| 148 | + (inter-fn [s] [[s 0 0]]) |
148 | 149 | (su/create-regexp-tokenizer #"[\s:/\.;,!=?\"'()\[\]{}|<>&@#^*\\~`\-]+")) |
149 | 150 | :token-filters [su/lower-case-token-filter]}) |
150 | 151 |
|
151 | 152 | analyzer (su/create-analyzer |
152 | 153 | {:tokenizer (datalevin/merge-tokenizers |
153 | | - (su/create-regexp-tokenizer #"[.]+") |
| 154 | + (inter-fn [s] [[s 0 0]]) |
154 | 155 | (su/create-regexp-tokenizer #"[\s:/\.;,!=?\"'()\[\]{}|<>&@#^*\\~`\-]+")) |
155 | 156 | :token-filters [su/lower-case-token-filter |
156 | 157 | su/prefix-token-filter]}) |
|
179 | 180 | {:text "->"} |
180 | 181 | {:text "->>"} |
181 | 182 | {:text "as->"} |
| 183 | + {:text "."} |
182 | 184 | {:text "as->banana"}] |
183 | 185 |
|
184 | 186 | _transact (d/transact! conn data) |
|
188 | 190 | :where |
189 | 191 | [(fulltext $ ?q {:top 20}) [[?e ?a ?v]]]] |
190 | 192 | (d/db conn) |
191 | | - "as->") |
| 193 | + "as") |
192 | 194 | doall)] |
193 | 195 |
|
194 | 196 | (d/close conn) |
|
199 | 201 | ; tests with fulltext and analyzer on a raw query |
200 | 202 | (let [query-analyzer (su/create-analyzer |
201 | 203 | {:tokenizer (datalevin/merge-tokenizers |
202 | | - (su/create-regexp-tokenizer #"[.*]+") |
| 204 | + (inter-fn [s] [[s 0 0]]) |
203 | 205 | (su/create-regexp-tokenizer #"[\s:/\.;,!=?\"'()\[\]{}|<>&@#^*\\~`\-]+")) |
204 | 206 | :token-filters [su/lower-case-token-filter]}) |
205 | 207 |
|
206 | 208 | analyzer (su/create-analyzer |
207 | 209 | {:tokenizer (datalevin/merge-tokenizers |
208 | | - (su/create-regexp-tokenizer #"[.*]+") |
| 210 | + (inter-fn [s] [[s 0 0]]) |
209 | 211 | (su/create-regexp-tokenizer #"[\s:/\.;,!=?\"'()\[\]{}|<>&@#^*\\~`\-]+")) |
210 | 212 | :token-filters [su/lower-case-token-filter |
211 | 213 | su/prefix-token-filter]}) |
|
231 | 233 | 11 "->" |
232 | 234 | 12 "->>" |
233 | 235 | 13 "as->" |
234 | | - 14 "as->banana"} |
| 236 | + 14 "as->banana" |
| 237 | + 15 "/" |
| 238 | + 16 "*" |
| 239 | + 17 "."} |
235 | 240 |
|
236 | 241 | _transact (doseq [[k v] input] |
237 | 242 | (d/add-doc engine k v)) |
238 | 243 |
|
239 | | - result (doall (d/search engine "as->" {:top 20 :display :texts}))] |
| 244 | + result (doall (d/search engine "->" {:top 20 :display :texts}))] |
240 | 245 |
|
241 | 246 | (d/close-kv lmdb) |
242 | 247 | (util/delete-files dir) |
|
0 commit comments