我希望在大量城市名称上构建一个自动完成的文本框。搜索功能如下:我想要对多词短语进行“开始于”搜索。例如,如果用户输入了“chicago he”,则只需要返回“Chicago Heights”等位置。
我正在尝试为此使用Lucene。我在理解如何实现这一点时遇到问题。
我已经尝试过我认为应该可行的方法:
我已经用 KeywordAnalyzer 索引了位置(我已经尝试过 TOKENIZED 和 UN_TOKENIZED):
doc.Add(new Field("Name", data.ToLower(), Field.Store.YES, Field.Index.TOKENIZED, Field.TermVector.NO));
并通过以下方式搜索它们(我还尝试了各种其他查询/分析器/等):
var luceneQuery = new BooleanQuery();
var wildcardQuery = new WildcardQuery(new Term("Name", "chicago hei*"));
luceneQuery.Add(wildcardQuery, BooleanClause.Occur.MUST);
我没有得到任何结果。将不胜感激任何建议。