gpt4 book ai didi

elasticsearch - 在Elasticsearch中使用电子邮件 token 生成器

转载 作者:行者123 更新时间:2023-12-02 23:28:59 26 4
gpt4 key购买 nike

尝试过一些来自Elasticsearch文档和Google的示例,但没有任何帮助。

我仅有的示例数据只是几篇博客文章。我正在尝试查看所有带有电子邮件地址的帖子。当我使用"email":"someone"时,我看到所有与someone匹配的帖子,但是当我更改为使用someone@gmail.com时,什么都没有显示!

    "hits": [
{
"_index": "blog",
"_type": "post",
"_id": "2",
"_score": 1,
"_source": {
"user": "sreenath",
"email": "someone@gmail.com",
"postDate": "2011-12-12",
"body": "Trying to figure out this",
"title": "Elastic search testing"
}
}
]

当我使用Get query时,如下所示,我看到所有匹配 someone@anything.com的帖子。但是我想改变这个 { "term" : { "email" : "someone" }}{ "term" : { "email" : "someone@gmail.com" }}
GET blog/post/_search
{
"query" : {
"filtered" : {
"filter" : {
"and" : [
{ "term" :
{ "email" : "someone" }
}
]
}
}
}
}

我对以下命令进行了curl -XPUT操作,但没有帮助
curl -XPUT localhost:9200/test/  -d '
{
"settings" : {
"analysis" : {
"filter" : {
"email" : {
"type" : "pattern_capture",
"preserve_original" : 1,
"patterns" : [
"([^@]+)",
"(\\p{L}+)",
"(\\d+)",
"@(.+)"
]
}
},
"analyzer" : {
"email" : {
"tokenizer" : "uax_url_email",
"filter" : [ "email", "lowercase", "unique" ]
}
}
}
}
}
'

最佳答案

您已经为电子邮件地址创建了一个自定义分析器,但是没有使用它。您需要在映射类型中声明email字段,以实际使用该分析器,如下所示。另外,请确保使用该分析器创建正确的索引,即blog而不是test

                       change this
|
v
curl -XPUT localhost:9200/blog/ -d '{
"settings" : {
"analysis" : {
"filter" : {
"email" : {
"type" : "pattern_capture",
"preserve_original" : 1,
"patterns" : [
"([^@]+)",
"(\\p{L}+)",
"(\\d+)",
"@(.+)"
]
}
},
"analyzer" : {
"email" : {
"tokenizer" : "uax_url_email",
"filter" : [ "email", "lowercase", "unique" ]
}
}
}
},
"mappings": { <--- add this
"post": {
"properties": {
"email": {
"type": "string",
"analyzer": "email"
}
}
}
}
}
'

关于elasticsearch - 在Elasticsearch中使用电子邮件 token 生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38710769/

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