【问题标题】:Solr Highlighting return idSolr 高亮返回 id
【发布时间】:2017-07-21 12:00:15
【问题描述】:

嗨,我正在做一个简单的高亮查询

select?fl=name&hl.fl=name&hl=on&indent=on&q=cubo&wt=json

问题是结果。我不想要 json 响应中的 id

"highlighting":{
    "fbd29a94-b53d-4de0-8e74-046bf1f921cd":{
      "name":["<em>Cubo</em> de Roda Dianteiro para Ford"]},
    "f6ddf7a0-352e-4789-8e29-ca927274c5cc":{
      "name":["<em>Cubo</em> de Roda Traseiro para Jac Motors"]},
    "1901086a-1867-4c8a-a2b7-ce7578e352c3":{
      "name":["<em>Cubo</em> de Roda Dianteiro para Nissan"]}}

我想要这个……可能吗?我是怎么做到的?

"highlighting":[
    {"name":["<em>Cubo</em> de Roda Dianteiro para Ford"]},
    {"name":["<em>Cubo</em> de Roda Traseiro para Jac Motors"]},   
    {"name":["<em>Cubo</em> de Roda Dianteiro para Nissan"]}]

【问题讨论】:

    标签: java php apache solr lucene


    【解决方案1】:

    我的猜测是这是不可能的,因为结果集中可能有没有对其执行突出显示的文档(即它不匹配可突出显示的术语,但它仍然匹配文档)。

    如果你真的需要这个,你可以在你的中间件中做(因为你已经标记了 PHP,我会用它来做伪代码):

    // keep highlighted entries in sequence
    $highlights = [];
    
    foreach ($hits as $doc) {
        // if we have a highlighting element for this document
        if (!empty($result['highlighting'][$doc['id']])) {
            // keep the highlighted text
            $highlights[] = $result['highlighting'][$doc['id']];
        } else {
            // .. and if we don't, add a null element so indices match
            $highlights[] = null; 
        }
    } 
    

    【讨论】:

    • 我很难过,但谢谢!
    猜你喜欢
    • 2012-05-23
    • 2023-03-13
    • 2011-07-06
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-21
    相关资源
    最近更新 更多