1

我有一个支持自动建议逻辑的搜索输入框。结果从弹性索引中获取,其分析器(index_analyzer、search_analyzer)用作标记器:nGram,并用作过滤器:search_analyzer 的标准、小写和 asciifolding 以及 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了。你能帮忙解决我的问题吗?对我来说,找到解决办法是当务之急。

先感谢您

4

0 回答 0