gpt4 book ai didi

python - match_phrase 不适用于分析索引

转载 作者:太空宇宙 更新时间:2023-11-03 15:16:01 25 4
gpt4 key购买 nike

我确实读过这篇文章post但不太明白如何应用它。

我分析了我的索引,我想知道是否可以搜索没有屈折形式的短语。

es.indices.create(index='bhar',body = {
"settings":{
"analysis":{
"analyzer":{
"my_stop_analyzer":{
"type":"custom",
"tokenizer":"standard",
"filter": ["english_possessive_stemmer","lowercase","english_stop","english_stemmer"]
}
},"filter":{
"english_stop":{
"type":"stop",
"stopwords":"_english_"
},
"english_stemmer":{
"type":"stemmer",
"name":"english"
},
"english_possessive_stemmer": {
"type": "stemmer",
"language": "possessive_english"
}}}},
"mappings":{
"my_type":{
"properties":{
"test": {
"type":"text",
"analyzer" : "my_stop_analyzer"
}
}
}
}
})

`

并且有一条记录的数据是“高耸”。当我搜索“pick tower”时,它仍然给我一个包含 match_phrase 的结果,我是这样写的:

scroll = elasticsearch.helpers.scan(es, query={
"query":{
"match_phrase":{
"test":{
"query":"pick rule"
}
}
}
},index='bhar', scroll='100s')`

有什么办法可以让我只得到短语的精确匹配吗?谢谢

最佳答案

您的分析器正在更改索引的术语,并且无法保留原始文本。我的建议是稍微改变你的映射:

    "test": {
"type": "text",
"analyzer": "my_stop_analyzer",
"fields": {
"keyword": {
"type": "keyword"
}
}
}

并在您的查询中引入“完全匹配”选项:

"match_phrase": {
"test.keyword": "picks towering"
}

  "query": {
"bool": {
"should": [
{
"match_phrase": {
"test.keyword": "picks towering"
}
},
{
"match_phrase": {
"test": "picks towering"
}
}
]
}
}

上面的第二种类型的查询不会干扰您已经存在的任何其他查询。

关于python - match_phrase 不适用于分析索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43886132/

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