elasticsearch 如何为短语建议者添加权重(或前置过滤器)?,elasticsearch,elasticsearch-5,elasticsearch,elasticsearch 5" /> elasticsearch 如何为短语建议者添加权重(或前置过滤器)?,elasticsearch,elasticsearch-5,elasticsearch,elasticsearch 5" />

elasticsearch 如何为短语建议者添加权重(或前置过滤器)?

elasticsearch 如何为短语建议者添加权重(或前置过滤器)?,elasticsearch,elasticsearch-5,elasticsearch,elasticsearch 5,我不熟悉suggester这个词,并且一直在阅读文档。完成建议者有一种增加权重的方法,以便对结果进行评分。“建议者”这个短语没有这样的选项,除非我失踪。我有: POST test/_search { "suggest": { "text": "noble prize", "simple_phrase": { "phrase": { "field": "title.trigram", "size": 1, "gram_

我不熟悉suggester这个词,并且一直在阅读文档。完成建议者有一种增加权重的方法,以便对结果进行评分。“建议者”这个短语没有这样的选项,除非我失踪。我有:

POST test/_search
{
  "suggest": {
    "text": "noble prize",
    "simple_phrase": {
      "phrase": {
        "field": "title.trigram",
        "size": 1,
        "gram_size": 3,
        "direct_generator": [ {
          "field": "title.trigram",
          "suggest_mode": "always"
        } ],
        "highlight": {
          "pre_tag": "<em>",
          "post_tag": "</em>"
        }
      }
    }
  }
}
查询:

GET /test/_search
{
   "suggest": {
      "text": "noble prize",
      "simple_phrase": {
         "phrase": {
            "field": "title.trigram",
            "size": 1,
            "gram_size": 3,
            "direct_generator": [
               {
                  "field": "title.trigram",
                  "suggest_mode": "always"
               }
            ],
             "collate": {
               "query": {
                  "inline": {
                     "match": {
                        "title": "{{suggestion}}"
                     }
                  }
               },
               "prune": true
            },
            "highlight": {
               "pre_tag": "<em>",
               "post_tag": "</em>"
            }
         }
      }
   }
}

您希望实现哪些功能<代码>你的意思是还是自动完成?在这种情况下,我可以给你其他的建议

要删减您的建议结果,您可以像这样使用
collate

{
   "suggest": {
      "text": "iphon",
      "simple_phrase": {
         "phrase": {
            "field": "title.trigram",
            "size": 1,
            "gram_size": 3,
            "direct_generator": [
               {
                  "field": "title.trigram",
                  "suggest_mode": "always"
               }
            ],
             "collate": {
               "query": {
                  "inline": {
                     "match": {
                        "title": "{{suggestion}}"
                     }
                  }
               },
               "prune": true
            },
            "highlight": {
               "pre_tag": "<em>",
               "post_tag": "</em>"
            }
         }
      }
   }
}
{
“建议”:{
“文本”:“iphon”,
“简单短语”:{
“短语”:{
“字段”:“title.trigram”,
“大小”:1,
“克尺寸”:3,
“直流发电机”:[
{
“字段”:“title.trigram”,
“建议模式”:“始终”
}
],
“核对”:{
“查询”:{
“内联”:{
“匹配”:{
“标题:“{{建议}}”
}
}
},
“修剪”:真的吗
},
“亮点”:{
“前标签”:“,
“post_标记”:”
}
}
}
}
}

在结果中,您将有一个
“collate\u match”:true/false
,指示任何建议是否与您的collate查询相匹配。

您希望实现哪种功能<代码>你的意思是还是自动完成?在这种情况下,我可以给你其他的建议

要删减您的建议结果,您可以像这样使用
collate

{
   "suggest": {
      "text": "iphon",
      "simple_phrase": {
         "phrase": {
            "field": "title.trigram",
            "size": 1,
            "gram_size": 3,
            "direct_generator": [
               {
                  "field": "title.trigram",
                  "suggest_mode": "always"
               }
            ],
             "collate": {
               "query": {
                  "inline": {
                     "match": {
                        "title": "{{suggestion}}"
                     }
                  }
               },
               "prune": true
            },
            "highlight": {
               "pre_tag": "<em>",
               "post_tag": "</em>"
            }
         }
      }
   }
}
{
“建议”:{
“文本”:“iphon”,
“简单短语”:{
“短语”:{
“字段”:“title.trigram”,
“大小”:1,
“克尺寸”:3,
“直流发电机”:[
{
“字段”:“title.trigram”,
“建议模式”:“始终”
}
],
“核对”:{
“查询”:{
“内联”:{
“匹配”:{
“标题:“{{建议}}”
}
}
},
“修剪”:真的吗
},
“亮点”:{
“前标签”:“,
“post_标记”:”
}
}
}
}
}

在结果中,您将有一个
“collate\u match”:true/false
,它指示是否有任何建议与您的collate查询相匹配。

我不太清楚,因为我正在试图理解用例。你说
如果“诺贝尔奖”和“诺贝尔奖”都在索引和用户类型“诺贝尔奖”中,我想推荐“诺贝尔奖”
。您希望Elasticsearch如何在
nobel
noble
之间进行选择?他不知道阿尔弗雷德·诺贝尔是谁。你需要给ES一个提示。然后你说
诺贝尔奖中的大多数用户类型都是正确的,这样每次使用查询时我都可以增加,从而建议正确的查询。这就是我刚才提到的暗示吗?你如何告诉ES诺贝尔奖被要求的次数比诺贝尔奖多,因此这是更正确的一个?我试图重现这个案例,我认为他说的是,如果诺贝尔奖和诺贝尔奖都被编入索引,然后,当用户搜索
诺贝尔奖
时,建议中会同时出现
诺贝尔奖
诺贝尔奖
,而如果用户输入
诺贝尔奖
,则只会出现
诺贝尔奖
。我想他希望诺德尔奖也能出现。我想帮你,但如果你不回答我的问题,那就很难了。建议者是不同的,说你希望其中一个像另一个一样得分并没有多大帮助。在Elasticsearch中,大多数情况下,用户一开始脑子里都有一个固定的想法,如果这个想法不起作用,他们仍然认为该领域需要一个固定的想法。但有时最好从不同的角度思考这个问题。这就是我通过问你们这些问题试图达到的目的。正如你们看到的,我和@Val都对什么不起作用感到困惑。如果你能澄清我们的两个假设,它可能会推进你的问题。事情对我来说并不清楚,因为我试图理解用例。你说
如果“诺贝尔奖”和“诺贝尔奖”都在索引和用户类型“诺贝尔奖”中,我想推荐“诺贝尔奖”
。您希望Elasticsearch如何在
nobel
noble
之间进行选择?他不知道阿尔弗雷德·诺贝尔是谁。你需要给ES一个提示。然后你说
诺贝尔奖中的大多数用户类型都是正确的,这样每次使用查询时我都可以增加,从而建议正确的查询。这就是我刚才提到的暗示吗?你如何告诉ES诺贝尔奖被要求的次数比诺贝尔奖多,因此这是更正确的一个?我试图重现这个案例,我认为他说的是,如果诺贝尔奖和诺贝尔奖都被编入索引,然后,当用户搜索
诺贝尔奖
时,建议中会同时出现
诺贝尔奖
诺贝尔奖
,而如果用户输入
诺贝尔奖
,则只会出现
诺贝尔奖
。我想他希望诺德尔奖也能出现。我想帮你,但如果你不回答我的问题,那就很难了。建议者是不同的,说你希望其中一个像另一个一样得分并没有多大帮助。在Elasticsearch中,大多数情况下,用户一开始脑子里都有一个固定的想法,如果这个想法不起作用,他们仍然认为该领域需要一个固定的想法。但有时最好从不同的角度思考这个问题。这就是我通过问你们这些问题试图达到的目的。正如你们看到我自己和@Va一样
{
   "suggest": {
      "text": "iphon",
      "simple_phrase": {
         "phrase": {
            "field": "title.trigram",
            "size": 1,
            "gram_size": 3,
            "direct_generator": [
               {
                  "field": "title.trigram",
                  "suggest_mode": "always"
               }
            ],
             "collate": {
               "query": {
                  "inline": {
                     "match": {
                        "title": "{{suggestion}}"
                     }
                  }
               },
               "prune": true
            },
            "highlight": {
               "pre_tag": "<em>",
               "post_tag": "</em>"
            }
         }
      }
   }
}