Searchkick 突出显示不必要的词
Searchkick highlights unnecessary word
我突出显示了不必要的词,例如我正在搜索 "Document CASE No. 2015-331"
这里是 searchkick 将突出显示的列表
- "Document CASE No. 2015-331"
- "Not"
- "no"
- "on"
- "case is"<----- 这很奇怪我不知道为什么会这样
- 高亮哈哈
- “2015”
- “2017”
- “2018”
- "2016"
- "to"
- "Not to"
这是我的搜索结果
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
这里的目标只强调"Document CASE No. 2015-331"
索引时您的字段似乎已被分析。
如果你想实现精确匹配并且标记应该是可搜索的,映射应该是 "not_analyzed" 并且数据需要是 re-indexed.
此处您正在寻找完全匹配。
通过添加如下内容修改您字段的映射。
"mappings": {
"properties": {
"city": {
"type": "text",
"fields": {
"raw": {
"type": "keyword"
}
}
}
}
}
我突出显示了不必要的词,例如我正在搜索 "Document CASE No. 2015-331" 这里是 searchkick 将突出显示的列表
- "Document CASE No. 2015-331"
- "Not"
- "no"
- "on"
- "case is"<----- 这很奇怪我不知道为什么会这样
- 高亮哈哈
- “2015”
- “2017”
- “2018”
- "2016"
- "to"
- "Not to"
这是我的搜索结果
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
这里的目标只强调"Document CASE No. 2015-331"
索引时您的字段似乎已被分析。 如果你想实现精确匹配并且标记应该是可搜索的,映射应该是 "not_analyzed" 并且数据需要是 re-indexed.
此处您正在寻找完全匹配。
通过添加如下内容修改您字段的映射。
"mappings": {
"properties": {
"city": {
"type": "text",
"fields": {
"raw": {
"type": "keyword"
}
}
}
}
}