gpt4 book ai didi

lucene - Elasticsearch 阻止

转载 作者:行者123 更新时间:2023-12-02 23:05:21 30 4
gpt4 key购买 nike

在一个字段中,我想设置一个具有自定义过滤器的自定义分析器-着眼于词干-因此,“闪存卡”和“闪存卡”的词根相同,因此返回的结果相同

当我运行以下查询时,我的命中率很高,但是“闪存卡”和“闪存卡”各自返回不同的结果:

{"query_string": {
"fields": ["description"],
"query": query
}
}

但是当我运行以下查询时,没有任何结果:
{"query_string": {
"fields": ["description.analyzed"],
"query": query
}
}

查看下面的映射,我们看到 description.analyzeddescription具有相同的配置-因此每个字段的行为都应相同,并且词干会发生吗?

如何确定分析仪正在使用?

我对索引的映射:
{'mappings': {
'file': { # doc_type
'properties': { # properties for doc_type
'description': { # field called description
'type': 'multi_field', # to allow "sub fields" with different alalysers
'fields': {
'description': {'type': 'string', 'analyzer': 'my_analyser'},
'analysed': {'type': 'string', 'analyzer': 'my_analyser'}
}
},
}
}
},
'settings': {
'analysis': {
'filter': { #declare my custin filters
'filter_ngrams': {'max_gram': 5, 'min_gram': 1, 'type': 'edgeNGram'},
'filter_stop':{'type':'stop', 'enable_position_increments': 'false'},
'filter_shingle':{'type': 'shingle', 'max_shingle_size': 5, 'min_shingle_size': 2, 'output_unigrams':'true'},
'filter_stemmer' : {'type': 'stemmer', 'name': 'english'}
},
'analyzer': { # declare custom analyzers
'my_analyser': {
'filter': ['standard', 'lowercase', 'asciifolding', 'filter_stop', 'filter_shingle', 'filter_stemmer'],
'type': 'custom',
'tokenizer': 'standard'
},
}
}
}
}

最佳答案

在您的映射中,您将用于“描述”和“已分析”的分析器都称为“my_analyser”,但是我假设“描述”分析器实际上应该是默认分析器,或者是无需担心这个问题的东西。

无论如何,如果要在映射中添加一个字段以建立索引,则还需要在实际查询文本上使用一个茎加器。这就是为什么您对“闪存卡”和“闪存卡”获得不同结果的原因-因为您没有在查询字符串,因此实际上是在执行两种不同的搜索。

我不确定这对复杂的query_string查询的效果如何,但是您应该将查询请求修改为:

{"query_string": {
"fields": ["description.analyzed"],
"query": query,
"analyzer": "my_analyzer"}

或类似内容(请确保您指定的分析器阻止了您的查询)。我敢肯定,ES不会像您期望的那样,试图找出要用于搜索查询的字段所使用的分析器。相反,它将使用您设置为默认值的任何分析器。

您还可以设置默认分析器(实际上,索引和搜索实际上可以具有不同的默认值)- checkout http://www.elasticsearch.org/guide/reference/index-modules/analysis/

关于lucene - Elasticsearch 阻止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19105919/

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