弹性搜索中带有其他条件的完成建议程序

奈贝达·卡尔

我有一个以不同语言返回作业的索引。

我需要按照与单一语言对应的单个文本来搜索相似的工作。假设我们已将1设置为English的LanguageId。我想搜索与帐户匹配的职位。因此,如果我在下面的查询中编写代码,它将使用所有不同的语言来获取作业。因此,基本上,“必须”查询不会产生任何影响。

GET jobs/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "languageid": "1"
          }
        }
      ]
    }
  },
  "suggest": {
    "suggestions": {
      "text": "acce",
      "completion": {
        "field": "jobs.suggest",
        "size": 30
      }
    }
  }
}

我的映射如下

   "mappings": {
"jobs": {
        "properties": {
          "@timestamp": {
            "type": "date"
          },
          "@version": {
            "type": "text"
          },
          "industytype": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "jobs": {
            "properties": {
              "suggest": {
                "type": "completion",
                "analyzer": "simple",
                "preserve_separators": true,
                "preserve_position_increments": true,
                "max_input_length": 50
              }
            }
          },
          "language": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "type": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "updateddate": {
            "type": "date"
          }
        }
      }
    }
}

阿列克谢·普鲁德尼科夫(Alexey Prudnikov)

无法在查询时过滤出建议,因为completion建议者使用FST-在索引时建立的特殊内存数据结构:

通过在索引中加载完成值,然后构建FST,可以在Lucene中建立建议程序。这可能是一个缓慢的资源密集型过程。并且,一旦索引更改,就需要重建FST。“实时搜索”是Elasticsearch的口头禅。返回过期的建议,或者每当索引更改时都要求完全重建是不可接受的。现在,我们不再在搜索时构建FST,而是在索引时构建每个段的FST。

因此,您所能做的就是为建议者添加上下文上下文也与completion字段一起在索引时填充,因此可以在查询中的suggest查询时使用。另外,本文可能对您有用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用完成建议程序自动完成ElasticSeach以返回完整文档

(Java)建议程序中的循环

Dockerfile(如果带有外部参数的其他条件)

如何在弹性搜索中建议(自动完成)下一个单词?

弹性搜索完成建议在多领域

如何扩展调度程序议程视图以包括其他列

弹性搜索PHP中具有AND条件的多匹配查询

Elasticsearch:完成建议程序不能与空白分析器一起使用

ElasticSearch完成建议程序-不返回数据

展开带有建议的搜索框

完成建议程序未按预期工作

Rails,searchkick(Elasticsearch 2.3)完成建议程序错误

mongoDB根据条件从其他集合的链接文档中查找带有值的文档

如何在弹性搜索中基于createdDate和其他字段进行搜索

当按下其他按钮时,带有setOnClickListener()的按钮如何完成未完成的工作?

带有formattable(或任何其他程序包)的列中的每隔第二行使用条件颜色格式

弹性搜索中的条件排序

带有其他条件的平均熊猫数据框

如何根据条件从表中创建带有其他行的data.table

弹性搜索_建议缓存

弹性搜索中带有“联合”的子查询

Chrome浏览器是否会根据其他标签中的内容建议搜索字词?

如何在PHP PECL扩展中启用solr拼写检查程序或建议程序

带有弹性搜索的OData服务

批量插入弹性搜索自动完成建议

如何删除其他表中带有条件的行(SQL)

从其他活动中完成所有先前的活动

弹性搜索:带有父和子条件的嵌套查询

弹性搜索中的自动完成