我有一个支持自动提供逻辑的搜索输入框。结果取自弹性索引,其分析器(index_analyzer,search_analyzer)用作标记器:nGram,以及过滤器:标准,小写和asciifolding用于search_analyzer&分别为index_analyzer的小写和asciifolding。 即使用户给出了一个没有重音(tonos)的希腊词,我正在努力实现但没有任何影响/结果的是获得结果。否则,用户获得正确的结果,并且该机制按预期工作。 我必须提到,给定的字符串与特定字段匹配到文档集,其中包括带重音的希腊字。此外,该字段是数据类型字符串,可以进行分析。
形成查询(使用不带重音的示例字符串突出显示问题):
$searchString = mb_strtolower('Προταση', 'UTF-8')
$queryText = new Elastica_Query_Text();
$queryText->setField('name', $searchString)
$query = new Elastica_Query();
$query->setQuery($queryText);
快速解决方案但不合适导致它有点沉重,就是形成一个模糊查询,其中min_similarity设置为0.7。然后它彻底运作,但成本很高。
所有工作都是使用elastica完成的,更不用说php了。你能帮忙解决我的问题吗?我必须找到解决方案。
提前谢谢