gpt4 book ai didi

elasticsearch - 如何在 Elasticsearch 中创建值并将其添加到标准小写分析器

转载 作者:行者123 更新时间:2023-12-03 00:51:42 24 4
gpt4 key购买 nike

在过去的几天中,我一直在房子周围待命,尝试以各种顺序进行操作,但无法弄清为什么它不起作用。

我正在尝试使用与“标准”分析器相同的分析器在Elasticsearch中创建索引,但在存储记录时保留大写字符。

我按如下方式创建分析器和索引:

PUT /upper
{
"settings": {
"index" : {
"analysis" : {
"analyzer": {
"rebuilt_standard": {
"tokenizer": "standard",
"filter": [
"standard"
]
}
}
}
}
},
"mappings": {
"doc": {
"properties": {
"title": {
"type": "text",
"analyzer": "rebuilt_standard"
}
}
}
}

}

然后添加两个记录以进行测试...
POST /upper/doc
{
"text" : "TEST"
}

添加第二条记录...
POST /upper/doc
{
"text" : "test"
}

使用/ upper / _settings可以得到以下结果:
{
"upper": {
"settings": {
"index": {
"number_of_shards": "5",
"provided_name": "upper",
"creation_date": "1537788581060",
"analysis": {
"analyzer": {
"rebuilt_standard": {
"filter": [
"standard"
],
"tokenizer": "standard"
}
}
},
"number_of_replicas": "1",
"uuid": "s4oDgdsFTxOwsdRuPAWEkg",
"version": {
"created": "6030299"
}
}
}
}
}

但是,当我使用以下查询进行搜索时,我仍然得到两个匹配项!大写和小写都必须表示在存储记录时未应用分析器。

像这样搜索...
GET /upper/_search
{
"query": {
"term": {
"text": {
"value": "test"
}
}
}
}

提前致谢!

最佳答案

首先,您将分析仪设置在title字段上,而不是text字段上(因为您的搜索位于text属性上,并且由于您仅使用text属性为文档编制了索引)

"properties": {
"title": {
"type": "text",
"analyzer": "rebuilt_standard"
}
}

尝试
"properties": {
"text": {
"type": "text",
"analyzer": "rebuilt_standard"
}
}

并让我们发布;)

关于elasticsearch - 如何在 Elasticsearch 中创建值并将其添加到标准小写分析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52478487/

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