我有一个APP支持基于lucene的搜索。
或支持中文和英文搜索的其他方法?
答案 0 :(得分:0)
你好我不完全理解你的问题,但我想我对你想要达到的目标有一个大概的了解。
如果你想分开搜索语言,我建议你在索引时添加一个Lucene Field“Language”。根据您正在编制索引的文本的语言。
因为您可以使用
轻松区分中文字符和英文字符Character.UnicodeBlock:
http://docs.oracle.com/javase/7/docs/api/java/lang/Character.UnicodeBlock.html
例如,您要检查字符串“str”的字符1:
if(Character.UnicodeBlock.of(**str[1]**) == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS)
{ do something }
这样,在搜索时,您可以以相同的方式检测中文输入,并在您的语言字段中添加条件到查询。
现在,如果您想进行混合搜索,我建议您构建自定义分析器,分析每个单词并在索引中存储翻译。