Lucene 6.2和ISO-8859-1(拉丁文)字符

时间:2016-08-28 23:49:03

标签: lucene iso-8859-1

我正在尝试一个项目的Lucene索引搜索器。

索引的文档内容有拉丁语(ISO-8859-1)字符,因此用户可以(也将)使用此字符集进行搜索。

据我所知,Lucene使用UTF-8生成索引文件。

问题:

1)在使用Lucene进行搜索时,有没有办法指定字符集?或者我是否必须手动将查询转换为UTF-8然后运行搜索?

2) IndexSearcher.search()方法不会忽略空格,所以我必须猜测“令牌”才能显示任何有意义的结果。如果用户忘记在搜索的术语上添加空格,则不会显示任何结果。有没有办法配置搜索器(或QueryParser)忽略空格?

1 个答案:

答案 0 :(得分:0)

  1. 不太清楚你到底遇到麻烦的确切位置。我认为你正在读取用户输入字符串,所以我不知道问题出在哪里。提供您的代码可能会澄清这一点。如果您确实是从用户输入读取字节数组,那么是的,转换是必要的。然而,将byte []转换为String并不是一个费力的过程。只需使用String ctor

  2. 如果您拥有passed it分析器,QueryParser会在空白处进行标记。 StandardAnalyzer将是典型的选择。