【发布时间】:2012-02-03 00:03:27
【问题描述】:
我正在尝试在我的应用程序中启用部分单词搜索。我想要发生的是,如果有人搜索说框架并且索引列将“playframework”作为项目之一,那么它应该被检测为命中。
这是我尝试过的:
play.modules.search.Query q = Search.search("index:*" + JavaExtensions.noAccents(by).toLowerCase() + "*", Location.class);
但我得到一个错误: 无法解析 'index:*framework* : '*' 或 '?'不允许作为 WildcardQuery 中的第一个字符
有什么想法吗?
【问题讨论】:
-
您永远不应该像前面所说的那样以“*”开始搜索。您应该定义过滤器以匹配部分(可能使用 NGramFilterFactory)。有关相关问题,请参阅:stackoverflow.com/questions/4824954/…,第二个答案(由 Mauricio Scheffer 撰写)应该有效。不要忘记重新索引!
标签: lucene playframework