Release notes #
Information about release notes of INFINI Pizza is provided here.
Latest #
Breaking changes #
Features #
Bug fix #
Improvements #
0.1.0 #
Hello World, Hello Pizza!
Features #
- Basic distributed capabilities and metadata management:
- Basic cluster catalog metadata management
- Metadata synchronization based on the Raft protocol
- RPC communication using Cap’n Proto (Capnp)
- Multi-region support for large cluster organization
- Text analysis engine:
- Built-in standard analyzer with configurable stopwords
- Support for Europe, CJK, and emoji wide UTF-8 characters in the standard analyzer
- Built-in whitespace analyzer
- Built-in lowercase/uppercase normalizer and token filter
- Field-level storage extensions:
- In-memory inverted index structure
- BKDTree for numbers and geospatial information
- Bitset for boolean types
- Basic local file system persistence support
- Vectorized query engine:
- Full compatibility with Lucene Query syntax
- Full compatibility with Elasticsearch QueryDSL syntax
- BM25 scoring algorithm
- Cross-field and multi-field combined queries
- Simple query execution explain
- Supported field types:
- Keyword
- Text
- Integer (
i32
) - BigInt (
i64
) - SmallInt (
i16
) - TinyInt (
i8
) - UnsignedInteger (
u32
) - UnsignedBigInt (
u64
) - UnsignedSmallInt (
u16
) - Byte (
u8
) - Float (
f32
) - Double (
f64
) - Boolean
- Array
- Object
- Supported query types:
- Match Query
- Match_all Query
- Term Query
- Phrase Query
- Range Query
- Boolean Query
- Prefix Query
- Fuzzy Query
- Plugins/tools/extensions:
- Pizza CLI: A tool designed to quickly interactive with the Pizza server
- Pizza wasm: WebAssembly wrapper of Pizza engine
- Pizza docsearch: Easy-to-use search box for static site
- Pizza stemmer: Snowball stemmer for 30+ languages
- Pizza jieba: A Chinese tokenizer
Commit logs #
- medcl: docs: update developing docs
- GitHub: chore: add licensure.yml (#508)
- GitHub: feat: allow customize the stopwords for standard tokenizer (#506)
- GitHub: chore: don’t pre sync external repos for build-tools (#507)
- GitHub: feat: detect failed follower and hanlde it (#496)
- GitHub: chore: make Clippy ignore generated code (#505)
- GitHub: refactor: refactoring lib common, move timestamp to pizza’s core (#503)
- GitHub: chore: add a query test (#502)
- GitHub: feat: standard tokenizer support handle CJK characters (#501)
- GitHub: chore: update justfile (#500)
- GitHub: feat: allow to register token filter (#499)
- GitHub: refactor: optimize iterators (#492)
- GitHub: docs: update references about how to reduce the binary size (#497)
- GitHub: fix: make the mapping returned from region API ordered (#498)
- GitHub: feat: add docsearch to website (#493)
- GitHub: chore: add contrib to project (#494)
- GitHub: fix: don’t allocate replicas of same shard on same node (#495)
- GitHub: tests: test GET/PUT region settings APIs (#491)
- GitHub: feat: support fetch source for search result (#490)
- GitHub: fix: topk should update the score_threshold (#489)
- GitHub: refactor: shrink dependences (#488)
- GitHub: feat: impl get/update region settings API (#456)
- GitHub: chore: remove unused depends in Cargo.toml (#487)
- GitHub: feat: add BM25 to search scoring (#486)
- GitHub: chore: remove libc_println (#485)
- GitHub: test: refactoring benches for indexing numbers/text (#484)
- GitHub: feat: implement upsert operation in BKDTree (#483)
- GitHub: feat: initial support for Fuzzy Query (#482)
- GitHub: refactor: reorganize benchmarking code (#479)
- GitHub: feat: add bkdtree as number’s field store (#465)
- GitHub: chore: add .licensure.yml file (#475)
- GitHub: chore: remove unsed feature flag (#477)
- GitHub: feat: support wide range of UTF-8 characters in parser (#476)
- GitHub: feat: add total_hits to search result (#472)
- GitHub: docs: add benchmarks link to website[skip ci] (#471)
- GitHub: chore: update git configs (#470)
- GitHub: chore: update LICENSE (#469)
- GitHub: test: add more query tests (#468)
- GitHub: fix: handle field store or shema missing (#467)
- GitHub: chore: optimize iterators (#466)
- GitHub: refactor: try not to collect() in inverted index (#463)
- GitHub: test: bench more query types (#464)
- GitHub: chore: don’t leak TOKEN while run bencher (#462)
- GitHub: chore: add bencher-engine to justfile (#461)
- GitHub: test: add boolean_match to bench boolean fields (#460)
- GitHub: chore: add wasm to contrib (#459)
- GitHub: refactor: try not to collect() when constructing VectorIterator (#458)
- GitHub: chore: pretty explains output (#457)
- GitHub: feat: add in_memory bitset store for boolean fields (#454)
- GitHub: chore: fix bencher build (#455)
- GitHub: refactor: refactoring store trait (#453)
- GitHub: chore: fix engine build (#451)
- GitHub: chore: specify an exact version of the Bencher CLI (#450)
- GitHub: chore: update github actions (#449)
- GitHub: test: add continuous benchmarking action to CI (#448)
- GitHub: chore: include stemmers as contrib crate (#447)
- GitHub: refactor: refactoring analysis modules (#446)
- GitHub: refactor: let metadata watcher thread see membership change && cache
is_current_node_leader
there (#445) - GitHub: docs: update engine’s README (#442)
- GitHub: refactor: refactoring tools (#441)
- GitHub: refactor: refactoring the analysis trait (#440)
- GitHub: feat: add wal to engine (#439)
- GitHub: test: test our log/state-machine impl with Openraft log test suite (#438)
- GitHub: refactor: re-use TCP connection by caching clients in ConnPool (#437)
- GitHub: refactor: apply clippy rules (#436)
- GitHub: refactor: handle error for invalid query (#435)
- GitHub: refactor: query engine vectorization (#432)
- GitHub: chore: fix the build on macOS (#434)
- GitHub: refactor: run Openraft on Monoio (#433)
- GitHub: refactor: use flush_async() so that we won’t block when appending raft logs (#431)
- GitHub: chore: bump Openraft to latest commit (#430)
- GitHub: fix: do not send catalog changes that are used to restore catalog from disk (#429)
- GitHub: feat: GET /collections/_rollings support (#427)
- GitHub: feat: add rolling/index info to region/cluster state APIs (#426)
- GitHub: feat: implement cluster/region health APIs (#425)
- GitHub: feat: support ‘names’ parameter in cluster/region state APIs (#424)
- GitHub: refactor: return number_of_replicas in cluster state and get collection APIs (#423)
- Medcl: docs: update reference
- Medcl: feat: support replica shards at metadata level
- Medcl: refactor: remove lock from invert index
- Medcl: chore: update query explains
- Medcl: chore: update field property to enable realtime by default
- GitHub: docs: update docs (#421)
- GitHub: feat: implement arena for efficient memory reuse (#420)
- GitHub: fix: handle multi-fields in phrase query (#418)
- GitHub: test: add more query tests (#413)
- GitHub: refactor: refactoring pizza query engine (#417)
- GitHub: docs: add profiling tips for macOS (#416)
- GitHub: feat: even shards between nodes when allocating them (#414)
- GitHub: refactor: separate MetadataRequest and InnerMetadataRequest (#412)
- GitHub: refactor: eagerly allocate Rolling and shards (#411)
- GitHub: refactor: put shard in routing_node even it is unassigned (#410)
- GitHub: docs: remove API suffix from doc title (#409)
- GitHub: feat: put unassigned shards in RoutingNode.unassigned (#407)
- GitHub: feat: add metadata RoutingNodes and RoutingNode (#408)
- GitHub: feat: add a coll setting to specify shard amount & partitions sharding strategy (#405)
- GitHub: feat: add 1 catalog watcher thread per node (#402)
- GitHub: test: ignore index_document test (#403)
- GitHub: feat: add a add_shard metadata request (#401)
- GitHub: feat: index put/delete/get APIs (#400)
- GitHub: feat: define index metadata & internal create/remove API (#399)
- GitHub: fix: retry if network error occurred in Raft RPC requests (#398)
- GitHub: feat: support common queres in engine (#397)
- GitHub: fix: region ID will be updated every time you restart Pizza (#396)
- GitHub: fix: function is_system_reserved_simple() by using absolute path (#395)
- GitHub: fix: don’t initialize raft if it is initialized (#393)
- GitHub: feat: get collection and its schema/settings/index API (#390)
- GitHub: chore: add check on documents for new feat in PR template (#392)
- GitHub: chore: fix justfile loadgen install instructions (#391)
- GitHub: chore: unify toolchain and pin it to nightly-2024-06-06 (#389)
- GitHub: refactor: remove macro define_impl_state_machine (#388)
- GitHub: chore: remove unneeded deps and remove fixed FIXMEs (#387)
- GitHub: refactor: remove unused tokio runtime threads (#384)
- GitHub: refactor: refactoring pizza engine (#376)
- GitHub: docs: update sharding docs (#383)
- GitHub: refactor: init the Pizza.nodes field (#382)
- GitHub: feat: use CapN protocol/RPC for cluster communication (#378)
- GitHub: test: add multiple nodes test (#380)
- GitHub: docs: update diagram of realtime docs #372
- GitHub: chore(deps): bump Openraft to 0.9.9 (#377)
- GitHub: style: imports at item level (#375)
- GitHub: chore: add place holders (#374)
- GitHub: chore: cp cli to bin under the release profile
- GitHub: refactor: move protocols to transport (#367)
- GitHub: docs: update pizza docs (#369)
- GitHub: test: move loadgen config to tests folder (#370)
- GitHub: chore: capnp boilerplate code, misc fix (#368)
- GitHub: feat: add cluster health api (#366)
- GitHub: refactor: rename module api to gateway (#365)
- GitHub: doc: refine contributing docs (#364)
- GitHub: refactor: refactoring thread per core (#361)
- GitHub: build(deps): bump h2 from 0.3.25 to 0.3.26 (#362)
- GitHub: chore: fix github ci action (#363)
- Steve Lau: refactor: raft module
- medcl: feat: cluster state API (#358) Co-authored-by: Steve Lau Co-committed-by: Steve Lau
- SteveLauC: refactor: refactoring pizza modules (#353) Co-authored-by: medcl Co-committed-by: medcl
- SteveLauC: feat: uniform UUID types (#355) Co-authored-by: Loi Chyan Co-committed-by: Loi Chyan
- SteveLauC: refactor: document RPC (#354) Co-authored-by: Loi Chyan Co-committed-by: Loi Chyan
- SteveLauC: feat: add CLI for better API interaction (#352)
- SteveLauC: feat: add/remove host (#348) Co-authored-by: Loi Chyan Co-committed-by: Loi Chyan
- SteveLauC: refactor: replace
define_rpc
withdefine_state_machine
(#351) Co-authored-by: Loi Chyan Co-committed-by: an - SteveLauC: refactor: remove assocated error type of generated state machine trait (#349) Co-authored-by: Loi Chyan itted-by: Loi Chyan
- Loi Chyan: ci: update cache steps
- Steve Lau: refactor: refactoring namespace APIs
- SteveLauC: feat: shard routing (#346) Co-authored-by: Loi Chyan Co-committed-by: Loi Chyan
- SteveLauC: refactor/define-state-machine (#347) Co-authored-by: Loi Chyan Co-committed-by: Loi Chyan
- SteveLauC: chore: cleanup logging messages (#345)
- SteveLauC: fix(raft): check initialized state before initialization (#342) Co-authored-by: Loi Chyan Co-committed-by: Loi
- SteveLauC: refactor(metadata): add shard-level schema (#339) Co-authored-by: Loi Chyan Co-committed-by: Loi Chyan
- SteveLauC: refactor: rename global_region to upstream_region (#340) Co-authored-by: medcl Co-committed-by: medcl
- SteveLauC: chore: misc changes (#336) Co-authored-by: medcl Co-committed-by: medcl
- SteveLauC: refactor: remove unnecessary fields of
DocLocation
(#337) Co-authored-by: Loi Chyan Co-committed-by: Loi - Steve Lau: fix: correct collection workdir
- SteveLauC: fix(modules): module started first should be stopped last (#332) Co-authored-by: Loi Chyan Co-committed-by: an
- SteveLauC: fix(config): parse override values containing ‘=’ (#331) Co-authored-by: Loi Chyan Co-committed-by: Loi Chyan
- SteveLauC: feat(cluster): configure CatalogManager node (#330) Co-authored-by: Loi Chyan Co-committed-by: Loi Chyan
- Loi Chyan: fix(log): tweak default logging filter
- SteveLauC: feat(cluster): implement catalog cluster (#328) Co-authored-by: Loi Chyan Co-committed-by: Loi Chyan
- SteveLauC: build(cargo): update dependencies (#329) Co-authored-by: Loi Chyan Co-committed-by: Loi Chyan
- Loi Chyan: fix(index_doc): do not update schema if the doc to update has not been allocated (#327) Co-authored-by: Steve Lau Co-committed-by: Steve Lau
- SteveLauC: refactor(metadata): write requests on a dedicated thread (#325)
- SteveLauC: refactor(metadata): use an immutable map for cheap snapshot building (#323) Co-authored-by: Loi Chyan itted-by: Loi Chyan
- SteveLauC: feat(metadata): implement
Collection::update_schema
(#322) Co-authored-by: Loi Chyan Co-committed-by: Loi - SteveLauC: feat(metadata): convert all writes to state machine requests (#320) Co-authored-by: Loi Chyan Co-committed-by: an
- SteveLauC: fix: default methods lifetime workaround (#326)
- Steve Lau: refactor: use our trait-variant fork that supports defaulted method
- SteveLauC: chore: add
edition
config inrustfmt.toml
(#321) - Loi Chyan: refactor: migrate to OpenRaft v0.9 release
- medcl: feat: impl from/size (#317) Co-authored-by: Steve Lau Co-committed-by: Steve Lau
- SteveLauC: docs: remove duplicate field(_version) description (#318)
- medcl: docs: update pizza references (#308)
- SteveLauC: feat(raft): implement RPC (#315)
- SteveLauC: feat(raft): namespace routing table (#311)
- SteveLauC: fix(config): apply overrides to default value if config file not present (#314)
- SteveLauC: fix(build): correct schema paths to watch (#313)
- Steve Lau: refactor: allow PUT method to be used in API index_document
- SteveLauC: refactor: use trait-variant to rewrite
async fn
bounds - Loi Chyan: fix: correct update URL (#309)
- SteveLauC: refactor(raft): migrate to openraft v0.9 (#306)
- medcl: feat: partial update
- medcl: chore: update repo of service-manager-rs
- Loi Chyan: feat: doc update by overwriting the previous doc
- Loi Chyan: fix(metadata): serialization and deserialization mismatch for
RollingShards
- medcl: fix: remove _seq_doc_id from source in the get API (#297) Co-authored-by: Steve Lau Co-committed-by: Steve Lau
- SteveLauC: chore: add debug log to tracked restore
- medcl: chore: add docs and website (#295)
- Steve Lau: test: complete the tests added in last PR
- Steve Lau: feat: make MemTable predicate support cols that are not used by query
- Steve Lau: chore(deps): bump datafusion to 36
- Steve Lau: feat: impl predicate pushdown for MemTable
- Steve Lau: feat: enable predicate pushdown for ShardTable
- medcl: feat: add CLI command to operate service (#289)
- SteveLauC: chore: fix clippy issues
- SteveLauC: chore: reorder logging message
- medcl: build: capnp build support (#283) Co-authored-by: Loi Chyan Co-committed-by: Loi Chyan
- medcl: refactor: restructure data layout
- medcl: feat: add util to check app instance
- Loi Chyan: feat: ordered ID in parquet files
- medcl: test: run each integration test in a clean context
- medcl: chore(justfile): export variables to sub processes
- medcl: chore: remove transport_config
- medcl: feat: add option to network_config
- medcl: refactor: refactoring for clustering (#281)
- medcl: fix: improve number parsing for -E option
- medcl: chore: simplify display for configs
- medcl: feat: add configs to api module
- medcl: refactor: move config to core
- medcl: chore: generate node’s id and name by default
- medcl: fix: security import
- medcl: refactor: clustering
- medcl: feat: add flag to CLI
- medcl: feat: add util to validate reserved file path (#277)
- medcl: fix: transport misuse network config
- medcl: chore: update docs
- medcl: chore: update cli command tips
- medcl: chore: skip compile on capnp missing
- medcl: refactor: rename util to utils
- medcl: chore: update justfile, add debug flag
- medcl: feat: add raft module
- medcl: refactor: refactoring configs
- medcl: refactor: refactoring api module
- medcl: refactor: modules go async
- medcl: chore: add util to flatten yaml
- medcl: chore: refactoring (#272)
- medcl: chore: prepare to support Cap’n Proto (#271)
- medcl: refactor: move cluster to modules (#269)
- medcl: fix: update loadgen versin in justfile
- medcl: fix(metadata): ensure initialization is completed before other access (#265) Co-authored-by: Loi Chyan Co-committed-by: Loi Chyan
- SteveLauC: perf(metadata): add a partiton look up table to rolling metadata (#268)
- Loi Chyan: feat: shard level query (#266) Co-authored-by: Steve Lau Co-committed-by: Steve Lau
- SteveLauC: feat(metadata): add a guard to ensure commiting after modification (#264)
- SteveLauC: refactor: use the
sqlparser
re-exported bydatafusion
(#267) - SteveLauC: feat(metadata): introduce a new metadata management machanism (#262)
- Steve Lau: refactor: revert #259
- Steve Lau: fix: panic in free() & correct the first value
- Steve Lau: build(deps): pin DataFusion to the commit before PR 5
- Steve Lau: refactor: store deleted docs at shard level in memory
- Steve Lau: style: fix cargo doc warnings
- loichyan: feat: realtime query
- loichyan: feat: add util to generate random uuid and name (#251)
- loichyan: refactor: commonly used constants
- loichyan: refactor: use type String rather than Uuid for shard UUID
- loichyan: chore: force rm the bin directory in justfile
- loichyan: docs: improve CONTRIBUTING.md on how to set up Rust
- loichyan: style: rename serde_json::Value to Json
- loichyan: fix: wrong merge strategy for NodeKind::Buckets
- loichyan: build(rust): update toolchain to 1.75.0
- loichyan: build(cargo): update dependencies
- loichyan: fix: a wrong assertion
- loichyan: refactor: commonly used constants
- loichyan: chore: format justfile
- loichyan: fix: panic in ‘collect_rows()’ when no data and first recursion gets skipped (#233)
- loichyan: feat: ensure that RecordBatches from MemTable contain field _id (#232)
- loichyan: chore: update justfile (#234)
- loichyan: chore: use nightly only for cargo fmt
- loichyan: refactor: move common library into lib
- loichyan: feat: metadata ‘input_file’ for RecordBatch from MemTable
- loichyan: fix: unit-tests (#226)
- loichyan: chore: remove wal from .gitignore
- loichyan: chore: misc changes (#223)
- loichyan: chore: update justfile (#225)
- loichyan: feat: make MemTable use the schema stored in the metadata
- loichyan: fix: the panic in build_tree() when there is no data to query
- loichyan: fix: correct the WAL cursor file path
- loichyan: fix: ensure that tasks are completed when stopping runtime
- loichyan: fix: stop panic ‘Cannot drop a runtime in a context where blocking is not allowed’
- loichyan: refactor: shard level wal
- loichyan: feat: add SIGTERM/CtrlBreak to exit signals
- loichyan: fix(justfile): bump Loadgen to the latest nightly version
- loichyan: refactor: all in async
- loichyan: refactor: take &Uuid rather than &str
- loichyan: refactor: async WAL reader/writer
- loichyan: feat(bulk): support top level route
/_bulk
- loichyan: chore: lowercase initials for all messages
- loichyan: fix: deny unknown fields in
Deserialize
- loichyan: ci(check): add clippy check
- loichyan: fix(clippy): guard across await point
- loichyan: feat: return a memtable ID after writing WAL entry
- loichyan: fix(clippy): deny await holding lock
- loichyan: feat: WAL thread
- loichyan: feat(justfile): change the default timeout seconds
- loichyan: fix(justfile): timeout 10s while stopping server
- loichyan: feat: support MemTable size config
- loichyan: fix(justfile): use CLI to fetch Git dependencies
- loichyan: feat(log): support per-module log filtering
- loichyan: refactor: change children field of AggTree to type IndexMap
- loichyan: refactor: some clippy warnings
- loichyan: feat: merge AggTree
- loichyan: feat(core): add our own
Schema
type - loichyan: docs: update legacy doc comment
- loichyan: refactor: treat avg aggregation as a multi value agg
- loichyan: feat: add/sub/div/mul/ord for Data type
- loichyan: fix(justfile): 10s timeout on server startup
- loichyan: fix(justfile): dead loop if curl is not installed
- loichyan: fix(aggregation): support
format
indate_histogram
aggregation - loichyan: fix(aggregation): multi values should be put in
"values": ...
- loichyan: style(justfile): format with
just --fmt
- loichyan: chore(justfile): more details in output
- loichyan: chore: update PR template
- loichyan: refactor(aggregation): improve construction of
AggTree
- loichyan: fix(justfile): create
$prefix
before installation - loichyan: chore: enable some useful lint rules
- loichyan: style: shell variables without braces
- loichyan: chore(justfile): auto download dev dependencies
- loichyan: feat(api): get document (#170)
- loichyan: feat: support empty payload (#169)
- loichyan: chore(justfile): pass positional arguments (#166)
- loichyan: style: remove trailing whitespace (#165)
- loichyan: feat: doc removal (#147)
- loichyan: test: move doc population of test_deletion to pre-test (#164)
- loichyan: ci: add checks (#160)
- loichyan: test: test queries using metadata (#161)
- loichyan: chore: don’t ignore Cargo.lock (#163)
- loichyan: feat: version API (#162)
- loichyan: test: doc removal (#158)
- loichyan: test: add tests for bucket aggregations (#157)
- loichyan: test: migrate to Loadgen DSL (#145)
- loichyan: chore: enable undocumented_unsafe_blocks lint (#156)
- loichyan: feat: our extensions to DataFusion (#154)
- loichyan: chore: disallow
std::path::{Path, PathBuf}
(#150) - loichyan: refactor: use pub(crate) only for better dead code analysis (#149)
- loichyan: chore(deps): bump DataFusion to the our latest git fork (#146)
- loichyan: feat: doc id (#144)
- loichyan: refactor: rename _custom_id to _key (#142)
- loichyan: feat(api): define API to delete a document (#141)
- loichyan: feat(bulk): parse
_index
as a shortcut for_collection:_namespace
(#139) - loichyan: feat(api): impl bulk APIs (#137)
- loichyan: refactor: use as_variant to aviod boilterplate code (#138)
- loichyan: feat(bulk): parse request body (#135)
- loichyan: feat: percentile agg (#136)
- loichyan: fix: UB caused by casting NULL && feat: filter agg (#134)
- loichyan: refactor: use AggsTree (#131)
- loichyan: feat(aggregation): serialize aggregation tree (#130)
- loichyan: refactor(justfile): remove implicit installations (#129)
- loichyan: feat: AggsTree for date histogram aggregation (#128)
- loichyan: refactor: partially revert #123 (#127)
- loichyan: refactor: add default values during deserializing (#126)
- loichyan: refactor: MetricsResultValue type (#124)
- loichyan: refactor: use our Data type (#123)
- loichyan: refactor(aggregation): single-collection-oriented search APIs (#120)
- loichyan: chore(build): pin Rust toolchain to 1.72.1 (#122)
- loichyan: feat: our own data type (#121)
- loichyan: fix(justfile): error occurs if run
just pre-test
twice (#119) - loichyan: fix(error): set http response status code same as body (#118)
- loichyan: feat(aggregation): parse
date_histogram
aggregation (#117) - loichyan: feat: infer_json_schema supports date type (#116)
- loichyan: feat(search/agg): AggsTree for terms agg (#106)
- loichyan: feat: aggregation return type (#114)
- loichyan: feat: percentiles aggregation (#111)
- loichyan: chore: justfile fixes and new recipes (#113)
- loichyan: refactor: replace
Path
withUtf8Path
(#110) - loichyan: refactor: improve implementation of
ast_eq!()
(#109) - loichyan: test: aggregation tests (#96)
- loichyan: test: use
jsonstr!()
for better readability (#105) - loichyan: test: add unit tests for util modules (#46)
- loichyan: chore(justfile): add a few helper recipes (#107)
- loichyan: refactor(util): move the util module to the upper level (#103)
- loichyan: chore: PR template (#104)
- loichyan: feat: metadata and WAL cursor persistence (#102)
- loichyan: chore(profile): remove the target-cpu setting (#101)
- loichyan: feat(aggregation): parse
terms
andfilter
aggregation (#99) - loichyan: chore(just): update tips in justfile
- loichyan: chore(build): add release profile, optimize binary size (#94)
- loichyan: chore(build): auto download binaries based on os (#93)
- loichyan: feat(query): support arg track_total_hits (#91)
- loichyan: refactor(search/agg): move agg func to aggregation/mod.rs (#92)
- loichyan: chore(deps): transfer dep boxcar to the INFINI org (#90)
- loichyan: refactor: merge all queries (#88)
- loichyan: test(just): set default value for
$PIZZA_SEVER
- loichyan: feat(aggregation): implement average aggregation (#86)
- loichyan: fix(loadrun): only set default value of
PIZZA_SERVER
- loichyan: chore(just): rename some recipes
- loichyan: docs(tests): add guide to get
just
intalled - loichyan: chore(makefile): support
make just ...
- loichyan: fix(makefile): inline recipe name
- loichyan: chore(makefile): make
make
a wrapper ofjust
- loichyan: fix(makefile): wrong phony targets
- loichyan: chore(makefile): automatically download just and run it
- loichyan: chore(justfile): expose some recipes
- loichyan: chore(flake): add just as inputs
- loichyan: chore: use justfile instead of Makefile
- loichyan: chore(makefile): start a development server
- loichyan: chore(makefile): add scripts to download loadgen/loadrun
- loichyan: refactor(aggregation): convert
[ArrayRef]
to a scalar array for aggregation (#85) - loichyan: refactor: change select_item() of avg agg (#84)
- loichyan: feat: Max/Min/Sum aggregation (#82)
- loichyan: fix: underflow panic in serializing hits when hit value is 0 (#83)
- loichyan: refactor: change return type of xxx_agg() to Option
(#80) - loichyan: refactor: enhance value count agg (#79)
- loichyan: chore: clear clippy
- loichyan: feat: value count aggregation (#77)
- loichyan: chore: udeps (#74)
- loichyan: refactor: full field name (#76)
- loichyan: feat: enhance the query hits field (#75)
- loichyan: feat: select item for aggregations (#73)
- loichyan: feat: where clause for query (#71)
- loichyan: chore(flake): update Rust toolchain to 1.72
- loichyan: refactor: change return type of xxx_query() to Vec
(#70) - loichyan: refactor: change return type of _sql to Vec
(#69) - loichyan: feat: range-query (#61)
- loichyan: fix: a typo in unit test (#68)
- loichyan: feat: in-memory table (#67)
- loichyan: test(api): add search/query tests
- loichyan: chore(gitignore): ignore testing logs
- loichyan: test: use
loadrun/loadgen
to run integration tests - loichyan: test: add some integration tests
- loichyan: feat(api::search): add aggregation type definitions (#66)
- loichyan: refactor(api::search): share term definition
- loichyan: fix: fix dataufion panic when no document exists
- loichyan: refactor: deny unknown fields while deserializing types (#60)
- loichyan: refactor: rename Relation to lowercase (#59)
- loichyan: feat: regexp query (#58)
- loichyan: feat: prefix query (#57)
- loichyan: feat: wildcard support for search APIs (#56)
- loichyan: feat: query-parser (#55)
- loichyan: fix: Normalize every url (#54)
- loichyan: fix(error): missing backtrace frames (#52)
- loichyan: chore: better logging/banner format (#53)
- loichyan: feat: term query (#44)
- loichyan: chore: update flake
- loichyan: feat(macros): support attributes in
define_query!()
- loichyan: refactor(log): migrate log4rs to tracing (#45)
- loichyan: refactor: new persistence structure (#49)
- loichyan: chore: bump arrow/arow_schema/datafusion
- loichyan: refactor: remove db (#47)
- loichyan: refactor(metadata): per collection schema (#43)
- loichyan: feat(modules.api): parse term query (#42)
- loichyan: refactor(error): better stack_trace field (#41)
- loichyan: refactor(error): module dependent error handling (#40)
- loichyan: fix(api): unresolved symbol
- loichyan: refactor(test): remove api test & use #[test] instead of #[tokio::test] for non-async unit test (#38)
- loichyan: fix: wrong Result type in api/database
- loichyan: refactor: module-independent error types (#35)
- loichyan: refactor: better-looking logo (#34)
- loichyan: chore: optimize binary size (#33)
- loichyan: test: add missing argument (#32)
- loichyan: refactor: error handling (#22)
- loichyan: refactor: fix most clippy warnings
- loichyan: refactor: doc API return, ‘created’ instead of ‘Created’
- loichyan: feat: SQL search (#29)
- loichyan: feat: allow to specify the config file path (#28)
- loichyan: feat: apply config in trait module (#27)
- loichyan: feat: log-level supported both in config file and cli (#26)
- loichyan: refactor: update config (#25)
- loichyan: refactor: refactor cli part (#24)
- loichyan: feat: WAL consumer (#23)
- loichyan: chore: support nix-flake to deploy environment (#21)
- loichyan: chore: use stable toolchain
- loichyan: feat: write doc to WAL (#19)
- loichyan: chore: git ignore wal
- loichyan: feat: DocumentID (#17)
- loichyan: chore: git ignore Cargo.lock (#16)
- loichyan: fix: correct path for wal (#12)
- loichyan: feat: walkaround to do error handling in route fns (#13)
- loichyan: update readme
- loichyan: fix(api): fix conflicting doc API (#10)
- loichyan: refactor(log): deuglify the log level parsing logic (#9)
- loichyan: refactor(api): obey the convention (#8)
- loichyan: update license file
- loichyan: refactor(metadata): use HashMap instead of Vec
- loichyan: feat: single file wal (#6)
- loichyan: add bert module
- loichyan: pull back changes since API module is blocking the app
- loichyan: skip data and log
- loichyan: refactoring data path, prepare workspace during init
- loichyan: log app starting message
- loichyan: optimize release build
- loichyan: handle CLI flags, allow customize logging level
- loichyan: update tagline
- loichyan: update default config, prefer to use relative path
- loichyan: no verbose config onload
- loichyan: feat: config (#4)
- loichyan: fix: runtime for API module
- loichyan: add index api
- loichyan: add more logs
- loichyan: update logging message
- loichyan: tune log4rs format
- loichyan: update logging
- loichyan: success init http server
- loichyan: comment out broken api code
- loichyan: prefer to init modules in sync way
- loichyan: fix: dir should be in lowercase
- loichyan: feat: store data and log in the current directory
- loichyan: fix: log dir for macOS and Windows
- loichyan: feat: log
- loichyan: feat: db/collection/doc creation API
- loichyan: update readme
- loichyan: update version
- loichyan: update readme
- loichyan: update to v0.1.1
- loichyan: update readme
- loichyan: update license identifier
- loichyan: update Cargo.toml
- loichyan: add desc to cargo.toml
- loichyan: add version to common
- loichyan: fix module start
- loichyan: refactor: use ctrlc to handle both SIGINT and SIGTERM
- loichyan: support kill signal
- loichyan: improve application startup
- loichyan: refactor: anyhow for error handling & some missing APIs & Aaync Module triat (#1)
- loichyan: build: remove dep serde_derive as serde already includes that
- loichyan: build: bump deps
- loichyan: style: cargo fmt
- loichyan: move init to another file
- loichyan: load modules in main
- loichyan: init module
- loichyan: update project structure
- loichyan: update metdata
- loichyan: update version
- loichyan: define Metadata
- loichyan: add ignore .vscode
- loichyan: rename cargos
- medcl: init commit