gpt4 book ai didi

ElasticSearch Phrase Suggester 不返回任何结果

转载 作者:行者123 更新时间:2023-11-29 02:57:34 26 4
gpt4 key购买 nike

我使用 ElasticSearch 5.1.2 作为 Heroku 的 Searchly 插件,带有 nodeJS 包 ( https://github.com/elastic/elasticsearch-js )。我正在尝试将菜名与 Phrase Suggester 匹配。我相信我遵循了以下教程 https://www.elastic.co/guide/en/elasticsearch/reference/5.1/search-suggesters-phrase.html

我可以在 Searchly 仪表板中看到我的商店包含数据。然而,我的查询从未返回任何结果,即使是在搜索确切的短语时也是如此。

这是我的设置 (CoffeeScript):

elasticSearchClient.indices.exists index: 'dishes'
.then (indexExists) ->
if indexExists
elasticSearchClient.indices.delete index: 'dishes'
.then () ->
elasticSearchClient.indices.create index: 'dishes'
.then () ->
elasticSearchClient.indices.close index: 'dishes'
.then () ->
elasticSearchClient.indices.putSettings {
index: 'dishes'
body:
settings:
number_of_shards: 1
analysis:
filter:
shingle:
type: 'shingle',
min_shingle_size: 2
max_shingle_size: 3
analyzer:
trigram:
type: 'custom',
tokenizer: 'standard',
filter: ['standard', 'shingle']
reverse:
type: 'custom',
tokenizer: 'standard',
filter: ['standard', 'reverse']
}
.then () ->
elasticSearchClient.indices.open index: 'dishes'
.then () ->
elasticSearchClient.indices.putMapping {
index: 'dishes'
type: 'dishes'
body:
properties:
dishNameMatching:
type: 'text'
fields:
trigram:
type: 'text'
analyzer: 'trigram'
reverse:
type: 'text'
analyzer: 'reverse'
name:
type: 'string'
index: 'no'
flavorId:
type: 'string'
index: 'no'
}

这是我的查询:

elasticSearchClient.suggest {
index: 'dishes'
body:
text: myText
dishSuggester:
phrase:
field: 'dishNameMatching.trigram'
size: options.limit or 5
gram_size: 3
direct_generator: [
field: 'dishNameMatching.trigram'
suggest_mode: 'always'
]
highlight: {
pre_tag: '['
post_tag: ']'
}
}

这是我搜索“草莓酱薯片”时得到的结果:

results: {
"_shards": {
"total": 1,
"successful": 1,
"failed": 0
},
"dishSuggester": [
{
"text": "potato chips with strawberry jam",
"offset": 0,
"length": 49,
"options": [] # Should be some results here :-(
}
]
}

感谢您的阅读,如有任何提示,我将不胜感激!

最佳答案

我们遇到了同样的问题。原来是我们正在创建的映射和我们正在索引的数据之间的类型名称不匹配。因此,例如,我们正在定义 agent 类型的映射,但我们的数据作为 agents 类型发送到索引。

因此,正在即时创建不包括三元组和反向字段的新类型,因此字段上没有分析器来生成建议。

希望这对您有所帮助!

关于ElasticSearch Phrase Suggester 不返回任何结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43586632/

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