# mdict-java **Repository Path**: djun100/mdict-java ## Basic Information - **Project Name**: mdict-java - **Description**: Query library for Mdict (mdx or mdd) , a popular dictionary file format. - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2021-11-08 - **Last Updated**: 2023-11-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MDict Library in pure java ! It supports:    I.lzo(via lzo-core-1.0.5.jar)   II.Ripemd128 key-info encryption.  III.Mdx add Mdd Builders. and is able to do:    I.Basic query.   II.Conjuction search.  III.Fast Fuzzy search (with wild cards).  IV.Fast Fulltext retrieval (with wild cards). # App Released! Get it on Google Play ![image](https://lh3.googleusercontent.com/gCP2nSx3V5MCksPy6NPj1MrFhCJm1GHfpMXm4lDkz3TUnNyJoJRGGdhy7Odec7nAfoyX=w1440-h620-rw) # Usage: ### 1.Basic query: ``` String key = "happy"; mdict md = new mdict(path); int search_result = md.lookUp(key, true);//true means to match strictly if(search_result!=-1){ String html_contents = md.getRecordAt(search_result); String entry_name = md.getEntryAt(search_result); } ``` ### 2.Search in a bunch of dicts: ``` String key = "happy"; ArrayList mdxs = new ArrayList(); mdxs.add(path1); mdxs.add(path2); RBTree_additive combining_search_tree = new RBTree_additive(); for(int i=0;i= keyword, maybe some mathematician could tell me why, but I've tested over 100000 times without any expectation. ``` /*via mdict-js *note at first time we feed in 0 as start and array.length as end. it must not be array.length-1. */ public static int reduce(int phrase, int[] array,int start,int end) { int len = end-start; if (len > 1) { len = len >> 1; return phrase > array[start + len - 1] ? reduce(phrase,array,start+len,end) : reduce(phrase,array,start,start+len); } else { return start; } } ```