Searchkick突出显示不必要的词

时间:2019-07-04 02:54:20

标签: ruby-on-rails elasticsearch searchkick

例如,我正在突出显示不必要的单词,例如,我正在搜索“ 2015-331号文档案例” 这是searchkick将突出显示的列表

  1. “文档案号2015-331”
  2. “不是”
  3. “否”
  4. “上”
  5. “情况就是” <-----这很奇怪,我不知道为什么是这样
  6. 突出显示的笑声
  7. “ 2015”
  8. “ 2017”
  9. “ 2018”
  10. “ 2016”
  11. “至”
  12. “不愿意”

这是我的搜索内容

    search = ::Document.search params[:q], fields: [:content], where: {id:
     params[:id]}, highlight: { tag: 'span class=match-matcher',
     fragment_size: @document.content.length}

    search.with_highlights.each do |document, highlights|

       document.content = highlights[:content]

    end

这里的目标是仅突出显示“案例号2015-331”

1 个答案:

答案 0 :(得分:0)

看起来您的字段在被索引时已被分析。 如果要实现精确匹配,并且令牌应可搜索,则映射应为“ not_analyzed”,并且数据需要重新索引。

在这里您要寻找完全匹配的内容。

通过添加以下内容来修改您的字段映射。

String str = "Hello";
String a = str.substring(2, 4);  // a is "ll" (not "llo")
String b = str.substring(0, 3);  // b is "Hel"
String c = str.substring(4, 5);  // c is "o" -- the last char