Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
<img src="//i.stack.imgur.com/RUiNP.png" height="16" width="18" alt="" class="sponsor tag img">elasticsearch 为Solr和Lucene中的内容编制索引,并在连接的电子邮件用户名上进行匹配_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Search_Solr_Lucene - Fatal编程技术网 elasticsearch 为Solr和Lucene中的内容编制索引,并在连接的电子邮件用户名上进行匹配,elasticsearch,search,solr,lucene,elasticsearch,Search,Solr,Lucene" /> elasticsearch 为Solr和Lucene中的内容编制索引,并在连接的电子邮件用户名上进行匹配,elasticsearch,search,solr,lucene,elasticsearch,Search,Solr,Lucene" />

elasticsearch 为Solr和Lucene中的内容编制索引,并在连接的电子邮件用户名上进行匹配

elasticsearch 为Solr和Lucene中的内容编制索引,并在连接的电子邮件用户名上进行匹配,elasticsearch,search,solr,lucene,elasticsearch,Search,Solr,Lucene,我正在将原始内容索引到文档中,如果文档中包含robby之类的电子邮件,则会将原始内容索引到文档中。pond@email.com我需要搜索一下robbypond找到的文件 目前我正在使用ClassicTokenizer(也用于电话号码的特殊处理)和WordDelimiterGraphFilter,这里是一个简化的分析器链 <fieldType name="text" class="solr.TextField" positionIncrementGap

我正在将原始内容索引到文档中,如果文档中包含robby之类的电子邮件,则会将原始内容索引到文档中。pond@email.com我需要搜索一下robbypond找到的文件

目前我正在使用ClassicTokenizer(也用于电话号码的特殊处理)和WordDelimiterGraphFilter,这里是一个简化的分析器链

<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
    <analyzer type="index">
      <tokenizer class="solr.WhitespaceTokenizerFactory"/>
      <filter class="solr.WordDelimiterGraphFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
    </analyzer>
    <analyzer type="query">
      <tokenizer class="solr.WhitespaceTokenizerFactory"/>
      <filter class="solr.WordDelimiterGraphFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
    </analyzer>
</fieldType> 

这将使用所有类型的电子邮件生成以下令牌

robby pond gmail com robby pond gmail com

问题是,我有一个要求,像robbypond这样的搜索将命中文档。是否有任何现有筛选器或参数集可用于连接robby和pond令牌,并将robbypond令牌添加到令牌流?

您可以使用,它在令牌赋予器之前执行,并可以用空字符替换
,因此,与成本非常高的
木瓦相比,只有相关的代币组合在一起

创建此类分析器的示例设置

{
    "settings": {
        "analysis": {
            "analyzer": {
                "my_analyzer": {
                    "tokenizer": "standard",
                    "char_filter": [
                        "replace_dots"
                    ]
                }
            },
            "char_filter": {
                "replace_dots": {
                    "type": "mapping",
                    "mappings": [
                        ". =>"
                    ]
                }
            }
        }
    }
}
并使用AnalyzeAPI检查和测试令牌

POST/\u分析

{
    "text" : "robby.pond@email.com",
    "analyzer" : "my_analyzer"
}
和生成的令牌

{
    "tokens": [
        {
            "token": "robbypond",
            "start_offset": 0,
            "end_offset": 10,
            "type": "<ALPHANUM>",
            "position": 0
        },
        {
            "token": "emailcom",
            "start_offset": 11,
            "end_offset": 20,
            "type": "<ALPHANUM>",
            "position": 1
        }
    ]
}
{
“代币”:[
{
“令牌”:“robbypond”,
“起始偏移量”:0,
“端部偏移”:10,
“类型”:“,
“位置”:0
},
{
“令牌”:“emailcom”,
“起始偏移量”:11,
“端部偏移”:20,
“类型”:“,
“职位”:1
}
]
}
您可以使用,它在标记器之前执行,可以用空字符替换
,这样与
木瓦相比,只有相关的标记组合在一起,这将非常昂贵

创建此类分析器的示例设置

{
    "settings": {
        "analysis": {
            "analyzer": {
                "my_analyzer": {
                    "tokenizer": "standard",
                    "char_filter": [
                        "replace_dots"
                    ]
                }
            },
            "char_filter": {
                "replace_dots": {
                    "type": "mapping",
                    "mappings": [
                        ". =>"
                    ]
                }
            }
        }
    }
}
并使用AnalyzeAPI检查和测试令牌

POST/\u分析

{
    "text" : "robby.pond@email.com",
    "analyzer" : "my_analyzer"
}
和生成的令牌

{
    "tokens": [
        {
            "token": "robbypond",
            "start_offset": 0,
            "end_offset": 10,
            "type": "<ALPHANUM>",
            "position": 0
        },
        {
            "token": "emailcom",
            "start_offset": 11,
            "end_offset": 20,
            "type": "<ALPHANUM>",
            "position": 1
        }
    ]
}
{
“代币”:[
{
“令牌”:“robbypond”,
“起始偏移量”:0,
“端部偏移”:10,
“类型”:“,
“位置”:0
},
{
“令牌”:“emailcom”,
“起始偏移量”:11,
“端部偏移”:20,
“类型”:“,
“职位”:1
}
]
}

Shingle过滤器将为您连接连续的令牌,并带有可选的分隔符:-但这取决于您需要这些匹配的精确程度(即,您将丢失有关gmail.com的元数据,因此您还将获得作为令牌的
pondgmail
。@Robby您是否有机会查看我的答案,如果您有任何疑问,请随时发表评论,这已经是相当长的一段时间了,如果您可以提供更新,那将是非常好的:)Shingle筛选器将为您连接连续的令牌,并带有可选的分隔符:-但这将取决于您需要这些匹配的精确程度(也就是说,你会丢失gmail.com在
@
之后的元数据,因此你也会得到
pondgmail
作为代币)。@Robby你有没有机会查看我的答案,如果你有任何疑问,请随时发表评论,这已经是相当长的一段时间了,如果你能提供更新,那就太好了:)