我有一个缓存的姓名列表,我将其存储到 Lucene 数据结构中。我想要找到名字以特定字母开头的人。
例如:
我的 list 如下。我将它们存储到 name
字段中。
foo bar
blabla foo
foo2 bar
test data
当我使用 name:f*
搜索时,它返回 foo bar
、foo2 bar
和 blabla foo
。它检查字段中的每个单词并获取 blabla foo
。但我需要获取以 f
开头的名称,它的第一个字母是 f
,而不是包含以 f
开头的单词的记录,即使它们位于句子的末尾。
有什么想法吗?
最佳答案
建议使用不带标记化的字段。
另外,不要使用通配符搜索,而是使用 EdgeNGramTokenFilter这会产生 token ,并且比通配符搜索要快得多,因为它会在索引时发生。
关于java - Lucene中如何获取以特定字母开头的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17451428/