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