问题标签 [accent-insensitive]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
search - Solr 架构。重音完全匹配和重音不敏感匹配
我试图弄清楚如何配置 Solr 管理模式的 fieldType 以实现以下目标:
(a) 搜索非重音字符串时,结果将不区分重音。
(b)但是,在对重音字符串执行搜索时,结果将仅对重音敏感。
例如:
searchString -> expectedResult
Equipe -> Equipe, Equipé, Equipe, 等等...
装备 -> 装备
注意:通配符 (*) 无关紧要,所选单词仅用于演示目的。
由于一些要求限制,我的情况有点不常见,但使用我的模式(如下),我有 3 个字段;OName、OSearch、ONameSearch。(注意:OSearch 和 ONameSearch 在后端有不同的用途,所以需要单独定义) 目的是让我的 Solr 查询 OSearch 和 ONameSearch,并将 OName 返回给 UI。
我最初的理解是 OName 将存储原始值(“María”)并将其索引为不区分重音(“maria”),以便在没有 solr.ASCIIFoldingFilterFactory 的情况下进行查询时,将实现以下目标。
示例:{query} -> {OName = result}
q = OSearch:*equipe* OR ONameSearch:*equipe*
-> OName = Equipe、Equipé、Equipé 等
q = OSearch:*equipé* OR ONameSearch:*equipé*
-> OName = Equipé
到目前为止,这是我的架构......
请指教,谢谢!
我研究过的大多数(如果不是全部)相关资源
如何在 Solr 中忽略重音搜索
如何在 SOLR 搜索中忽略重音?
SOLR 和重音字符
Solr 重音删除
SOLR 使用重音字符轻松搜索
Solr 参考指南 6.6 定义字段
Solr 参考指南 6.6 复制字段
mongodb - Spring-boot + mongodb 找不到带重音的单词
大家早上好,
我在使用带有 spring-boot 的 MongoRepository 时遇到问题,我创建了查询接口来访问 mongodb 集合,并且正在发生以下情况。
例如:我有一个带有“title”属性及其值“Christmas Promotion”的文档,我创建了一个搜索标题的方法,即 findByTitleLikeIgnoreCase(字符串标题),但是当我搜索没有重音符号的“promoção”时不会返回记录,如果我用重音打字通常会带来。
在银行直接查询或者使用mongodriver都可以,我也用TextCriteria测试过,也可以,但是使用MongoRepository接口我有这个问题,还有其他人经历过吗?
提前致谢。
postgresql - unaccent() 不适用于 plpgsql 动态查询中的希腊字母
我使用 PostgreSQL 10 并且CREATE EXTENSION unaccent;
成功运行。我有一个包含以下内容的 plgsql 函数
whereText := 'lower(unaccent(place.name)) LIKE lower(unaccent($1))';
之后,根据用户的选择,可能会在whereText
.
最终whereText
在查询中使用:
即使我删除了零件,它whereText := 'LOWER(unaccent(place.name)) LIKE LOWER(unaccent($1))';
也不起作用。LOWER
我这样做select __my_function('Τζι');
了,但我什么也没得到,即使我应该得到结果,因为在数据库中有名字Τζίμα
如果我删除unaccent
并保留它,它LOWER
可以工作,但不适用于重音:按原样恢复。似乎是引起了问题。τζ
Τζίμα
unaccent
我错过了什么?我怎样才能解决这个问题?
由于有关于语法和可能的 SQLi 的评论,我提供了整个函数定义,现在更改为在希腊语中不区分重音和不区分大小写:
coldfusion - 如何在 Mura 中处理西班牙语网站中的重音字符
我遇到的问题是当用户在西班牙网站上时,如果他们输入的单词不正确,他们将无法看到所有结果。意思是,如果他们的字符在字符上方没有重音,结果将显示为空白。
例如,如果用户键入单词“Medico”而“é”顶部没有重音,则搜索将返回空白。
我正在使用 Mura,一个创建搜索的 CMS。我能够根据用户输入找到它搜索的功能。但是,我无法清楚地了解查询是如何实现的。
我正在尝试修改该函数以使其使用排序规则,我找到了一个关于如何在stackoverflow上使用的示例,它将处理西班牙语或任何其他语言的口音。
我认为它应该在“where”之后并有一个 cfif 语句,如果它是西班牙站点,则合并排序规则。
请注意,查询是在coldfusion中完成的:
我的问题是:排序规则在上面的查询中应该放在哪里?还是有比在查询中使用排序规则更好的方法?
或者我应该联系 Mura,看看是否需要实施一个新框架来实现我正在寻找的东西?
任何帮助表示赞赏
postgresql - Amazon RDS + PostgreSQL + 重音 + 喜欢
我在使用标题中描述的配置时遇到了很多麻烦。
我的问题 :
- 我在 AWS RDS 中有一个 PostgreSQL DB 10.0
- 数据库配置为 UTF-8
- 我有一张用法语描述疾病的表格(所以,有口音)
- 我想查找描述中包含特定单词的所有代码
例如,我的搜索是 :
SELECT * FROM cim10 WHERE description LIKE '%anémie%' ORDER BY weight DESC
效果很好。
问题是当我想要寻找 '%anemie%' (没有重音)时获得相同的结果。
我发现 AWS RDS 安装了 unaccent 模块,它可以解决我的问题,但是当我尝试它时,我的 lambda 函数出现错误:
有人可以帮我找出解决方案吗?非常感谢
postgresql - Yii2:重音不敏感过滤器
我想使用不区分重音来搜索单词。对于不区分大小写,我使用ilike:
但是对于口音不敏感,我不知道 Yii2 解决方案(否则我可以使用这个 PHP解决方案)。
在下一个示例中,我搜索了“camara”这个词,但没有找到“cámara”这个词(在西班牙语中是相机的意思):
mips - 如何在 MIPS 中制作对口音不敏感的回文检查器?
我正在 MIPS 中编写一个回文检查器,我试图让它不区分重音,这样像“ahà”这样的东西也会被认为是回文。但是,它看起来不像不区分大小写的场景那么简单,其中小写字母和大写字母之间存在固定值。
我问过我的老师,她说我可以检查整个字符串并将任何“è”替换为“e”,然后再次检查以将任何“é”替换为“e”等等,但她告诉我那里是一个更好的解决方案,并要求我考虑一下。到目前为止,我唯一注意到的是重音符号在扩展的 ASCII 码中,所以 > 127,但我似乎不明白该怎么做。有人能帮我吗?即使只是提示也将不胜感激,在此先感谢您。
elasticsearch - 如何使用 elasticsearch nest api 创建自定义分析器以忽略重音和 pt-br 停用词?
首先,考虑我正在使用一个“新闻”类(葡萄牙语中的 Noticia),它有一个名为“内容”的字符串字段(葡萄牙语中的 Conteudo)
我正在尝试创建一个索引,该索引被配置为忽略重音和 pt-br 停用词,并允许在高亮查询中分析多达 40mi 的字符。
我可以使用以下代码创建这样的索引:
如果我使用 Kibana 开发工具测试这个分析器,我会得到我想要的结果:没有重音符号和停用词被删除!
结果:
当我使用 NEST 使用折叠分析器分析查询时,返回相同(良好)的结果(返回令牌“Ferias”和“funcionarios”)
但是,如果我使用 NEST ElasticSearch .NET 客户端执行搜索,则“Férias”(带口音)和“Ferias”(不带口音)之类的术语将被视为不同。
我的目标是执行一个返回所有结果的查询,无论这个词是 Férias 还是 Ferias
这就是我用来查询弹性搜索的简化代码(C# 嵌套):
这就是与 searchResponse 关联的扩展 API 调用
我也尝试在查询中使用多字段和后缀,但没有成功
任何线索我做错了什么或我可以做些什么来达到我的目标?
提前非常感谢!
java - 使用java将重音字符转换为英文
我有一个要求,我需要使用重音字符进行搜索,这些字符可以用于来自Iceland
和的用户Japan
。我编写的代码适用于一些重音字符,但不是全部。下面的例子 -
以下是我的代码:-
也试过这个:-
请指教。
laravel - MongoDB 匹配部分文本忽略重音符号(变音符号)
我有两个应该与简单文本匹配的字段。
我目前正在使用 Jenssegers'Laravel Mongodb ( https://github.com/jenssegers/laravel-mongodb )
现在的代码是这样的,几乎可以像我想要的那样工作:
缺少的是我想忽略字段中的重音name
和commonName
,因此例如,如果content.itemList.name
是“foöBàr”并且查询是“obar”,我应该在结果中得到它。
编辑:经过几天的尝试,我还没有找到解决方案。
我认为应该在 MongoDB 中轻松完成一些如此微不足道的事情。
我尝试过的其他事情:
- 为我要搜索的字段创建了一个文本索引
- 使用排序规则,这显然不适用于正则表达式
示例文档
我想要的是:
匹配任何姓氏、名字或带有部分字符串(lian、appe、mbappe 等)的名称的查询,不区分大小写和变音符号(重音)。
好的匹配应该是,例如:“Mbappe”“appe”“mbapp锓Kylian”“kylian mbappe”