1*ab8db090SAndroid Build Coastguard Workerrequire "marisa" 2*ab8db090SAndroid Build Coastguard Worker 3*ab8db090SAndroid Build Coastguard Workerkeyset = Marisa::Keyset.new 4*ab8db090SAndroid Build Coastguard Workerkeyset.push_back("cake") 5*ab8db090SAndroid Build Coastguard Workerkeyset.push_back("cookie") 6*ab8db090SAndroid Build Coastguard Workerkeyset.push_back("ice") 7*ab8db090SAndroid Build Coastguard Workerkeyset.push_back("ice-cream") 8*ab8db090SAndroid Build Coastguard Worker 9*ab8db090SAndroid Build Coastguard Workertrie = Marisa::Trie.new 10*ab8db090SAndroid Build Coastguard Workertrie.build(keyset) 11*ab8db090SAndroid Build Coastguard Workerprint("no. keys: ", trie.num_keys(), "\n") 12*ab8db090SAndroid Build Coastguard Workerprint("no. tries: ", trie.num_tries(), "\n") 13*ab8db090SAndroid Build Coastguard Workerprint("no. nodes: ", trie.num_nodes(), "\n") 14*ab8db090SAndroid Build Coastguard Workerprint("size: ", trie.io_size(), "\n") 15*ab8db090SAndroid Build Coastguard Worker 16*ab8db090SAndroid Build Coastguard Workeragent = Marisa::Agent.new 17*ab8db090SAndroid Build Coastguard Worker 18*ab8db090SAndroid Build Coastguard Workeragent.set_query("cake") 19*ab8db090SAndroid Build Coastguard Workertrie.lookup(agent) 20*ab8db090SAndroid Build Coastguard Workerprint(agent.query_str(), ": ", agent.key_id(), "\n") 21*ab8db090SAndroid Build Coastguard Worker 22*ab8db090SAndroid Build Coastguard Workeragent.set_query("cookie") 23*ab8db090SAndroid Build Coastguard Workertrie.lookup(agent) 24*ab8db090SAndroid Build Coastguard Workerprint(agent.query_str(), ": ", agent.key_id(), "\n") 25*ab8db090SAndroid Build Coastguard Worker 26*ab8db090SAndroid Build Coastguard Workeragent.set_query("cockoo") 27*ab8db090SAndroid Build Coastguard Workerif not trie.lookup(agent) 28*ab8db090SAndroid Build Coastguard Worker print(agent.query_str(), ": not found\n") 29*ab8db090SAndroid Build Coastguard Workerend 30*ab8db090SAndroid Build Coastguard Worker 31*ab8db090SAndroid Build Coastguard Workerprint("ice: ", trie.lookup("ice"), "\n") 32*ab8db090SAndroid Build Coastguard Workerprint("ice-cream: ", trie.lookup("ice-cream"), "\n") 33*ab8db090SAndroid Build Coastguard Workerif trie.lookup("ice-age") == Marisa::INVALID_KEY_ID 34*ab8db090SAndroid Build Coastguard Worker print("ice-age: not found\n") 35*ab8db090SAndroid Build Coastguard Workerend 36*ab8db090SAndroid Build Coastguard Worker 37*ab8db090SAndroid Build Coastguard Workertrie.save("sample.dic") 38*ab8db090SAndroid Build Coastguard Workertrie.load("sample.dic") 39*ab8db090SAndroid Build Coastguard Worker 40*ab8db090SAndroid Build Coastguard Workeragent.set_query(0) 41*ab8db090SAndroid Build Coastguard Workertrie.reverse_lookup(agent) 42*ab8db090SAndroid Build Coastguard Workerprint(agent.query_id(), ": ", agent.key_str(), "\n") 43*ab8db090SAndroid Build Coastguard Worker 44*ab8db090SAndroid Build Coastguard Workeragent.set_query(1) 45*ab8db090SAndroid Build Coastguard Workertrie.reverse_lookup(agent) 46*ab8db090SAndroid Build Coastguard Workerprint(agent.query_id(), ": ", agent.key_str(), "\n") 47*ab8db090SAndroid Build Coastguard Worker 48*ab8db090SAndroid Build Coastguard Workerprint("2: ", trie.reverse_lookup(2), "\n") 49*ab8db090SAndroid Build Coastguard Workerprint("3: ", trie.reverse_lookup(3), "\n") 50*ab8db090SAndroid Build Coastguard Worker 51*ab8db090SAndroid Build Coastguard Workertrie.mmap("sample.dic") 52*ab8db090SAndroid Build Coastguard Worker 53*ab8db090SAndroid Build Coastguard Workeragent.set_query("ice-cream soda") 54*ab8db090SAndroid Build Coastguard Workerwhile trie.common_prefix_search(agent) 55*ab8db090SAndroid Build Coastguard Worker print(agent.query_str(), ": ", agent.key_str(), " (", agent.key_id(), ")\n") 56*ab8db090SAndroid Build Coastguard Workerend 57*ab8db090SAndroid Build Coastguard Worker 58*ab8db090SAndroid Build Coastguard Workeragent.set_query("ic") 59*ab8db090SAndroid Build Coastguard Workerwhile trie.predictive_search(agent) 60*ab8db090SAndroid Build Coastguard Worker print(agent.query_str(), ": ", agent.key_str(), " (", agent.key_id(), ")\n") 61*ab8db090SAndroid Build Coastguard Workerend 62