Pio*_*ski 1 java lucene full-text-search utf-8 hibernate-search
我刚刚实现了基于Hibernate Search的全文搜索引擎.
我正在寻找一个问题的解决方案.我有波兰语(UTF-8)字符的文本,例如:"zażółćgęśląjaźń".当我在搜索"jaźń"时,一切正常,结果就找到了.但是当我在寻找"jazn"时,结果却找不到.
我想搜索所有可能的术语:"jaźń","jazń","jaźn"和"jazn",并找到搜索到的"zażółćgęśląjaźń"文本.如何配置Hibernate Search?
在索引/查询之前,您必须定义分析器以分析文本.
有关分析器的信息,请参阅Hibernate Search文档第1.8节,有关分析的更完整信息, 请参见第4.3节
要解决您的问题,您定义的分析器必须包含ASCIIFoldingFilter将非ASCII字符转换为最接近的ASCII等效字符(也可能是等LowerCaseFilter).看这个例子
如果您使用Hibernate Search DSL构建查询,则会自动完成.如果您使用Lucene库存构建查询,则此处有一个示例,它将分析器自动绑定到字段.
请注意,默认情况下不分析通配符查询,因此如果使用通配符,则需要先清理字符串,然后再将其传递给查询.
您可以在此处查看如何清理通配符查询的示例.
它使用下面的ASCIIFoldingFilter和这种代码.
| 归档时间: |
|
| 查看次数: |
669 次 |
| 最近记录: |