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