【问题标题】:elasticsearch more_like_this with highlights带有亮点的弹性搜索 more_like_this
【发布时间】:2015-04-27 16:47:59
【问题描述】:

所以,我有一个小型的 elasticsearch 服务器,我正在尝试执行以下操作: 1) 用户搜索一些关键字。 2) 向用户显示相关结果的列表。结果显示在突出显示中,搜索词突出显示。 3) 用户点击结果。 4) 一个新页面显示整个文档,关键字在整个文档中突出显示,并且有一个相关(more_like_this)结果列表。

我的第一个查询如下:

{
"query" : 
{
    "filtered" : 
    {
        "query": {"term": {
           "text": {
              "value": "term"
           }
        }}
    }
},
"highlight":
{
    "fields":
    {
        "title" : {"number_of_fragments" : "0"},
        "text" :  {}
    },
    "pre_tags" : ["<b>"],
    "post_tags" : ["</b>"]
},
"_source" : ["title", "date", "_id"],
"from" : 0,
"size" : 10

}

我的第二个查询如下(id 显然是文档 id,这里以 1000 为例): { "query": { "more_like_this": { "fields" : ["text","title"], "docs": [{ "_id" : "1000" }], "min_term_freq" : 1, "include" : true } }, "_source" : [ "title", "text", "_id", "url" ], "from" : 0, "size" : 10 }

有什么方法可以实现我想要的(让 more_like_this 查询突出显示搜索词)还是唯一的解决方案是对完整文档突出显示进行另一个查询?

提前致谢。

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    如果您更改映射,这是可能的。 您需要启用术语位置和偏移量。

    例如

    "title" : {
        "type": "string",
        "term_vector": "with_positions_offsets"
    }                     
    

    然后突出显示应该照常工作。我用 ES 版本 1.6 测试过。

    https://github.com/elastic/elasticsearch/issues/10829#issuecomment-148041529

    【讨论】:

      猜你喜欢
      • 2020-02-22
      • 2017-05-11
      • 1970-01-01
      • 2020-11-03
      • 2019-11-09
      • 2017-07-16
      • 1970-01-01
      • 1970-01-01
      • 2015-09-09
      相关资源
      最近更新 更多