gpt4 book ai didi

curl - 自定义分析器在Elasticsearch中不起作用

转载 作者:行者123 更新时间:2023-12-03 01:44:57 24 4
gpt4 key购买 nike

运行 flex 1.6版

我正在尝试为我在Elasticsearch中的索引设置自定义分析器。我的索引/具有某些属性,其中包含一些重音符号和特殊字符。

就像我的其中一个属性(property)名称具有这样的值一样,“name” =>“Estáloca”
所以我想要实现的是,每当我尝试通过这种方式进行搜索时,
http://localhost:9200/tutorial/helloworld/_search?q=esta

我应该得到“Estáloca” 的结果。我已经通过以下链接并配置了必要的分析器,该分析器在该链接中进行了说明。
https://www.elastic.co/guide/en/elasticsearch/guide/current/asciifolding-token-filter.html

curl -XPUT 'localhost:9200/tutorial?pretty' -H 'Content-Type: application/json' -d'
{
"mappings":{
"helloworld":{
"properties": {
"name": {
"type": "string",
"analyzer": "standard",
"fields": {
"folded": {
"type": "string",
"analyzer": "folding"
}
}
}
}
}
},
"settings": {
"analysis": {
"analyzer": {
"folding": {
"tokenizer": "standard",
"filter": [ "lowercase", "asciifolding" ]
}
}
}
}
}'

我在创建索引时进行了配置,并输入了一些类似的条目进行测试,
curl -X POST 'http://localhost:9200/tutorial/helloworld/1' -d '{ "name": "Está loca!" }'
curl -X POST 'http://localhost:9200/tutorial/helloworld/2' -d '{ "name": "Está locá!" }'

但是当这样搜索时
http://localhost:9200/tutorial/helloworld/_search?q=esta
什么都没发生。我只希望每当用户使用任何语言(例如英语)进行搜索时,它都应获得相同的结果。请任何人都可以提供帮助,我如何才能在最近1周的时间内实现这一目标?

最佳答案

您将无法在esta字段中搜索_all关键字。作为elasticsearch的默认设置,仅在构建_all field时应用标准分析器。

所以你下面的查询

GET folding_index1/helloworld/_search?q=esta

在 flex dsl中产生以下匹配查询。
GET folding_index1/helloworld/_search
{
"query": {
"match": {
"_all": "esta"
}
}
}

_all字段中进行搜索,因此找不到名称的折叠标记。

您可以执行以下操作,但是即使对于多字段提到了 include_in_all,它仍然对_all字段应用标准分析器。
PUT folding_index1
{
"mappings": {
"helloworld": {
"properties": {
"name": {
"type": "string",
"analyzer": "standard",
"fields": {
"folded": {
"type": "string",
"analyzer": "folding",
"include_in_all": true
}
}
}
}
}
},
"settings": {
"analysis": {
"analyzer": {
"folding": {
"tokenizer": "standard",
"filter": ["lowercase", "asciifolding"]
}
}
}
}
}

如下查询可以为您服务。有关 _all field analyzer的更多信息
POST folding_index1/_search?q=name.folded:esta

关于curl - 自定义分析器在Elasticsearch中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44816432/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com