我很难理解下面的查询对象为什么不能使ES突出显示_source列中的所有单词。
{
_source: [
'baseline',
'cdrp',
'date',
'description',
'dev_status',
'element',
'event',
'id'
],
track_total_hits: true,
query: {
bool: {
filter: [],
should: [
{
multi_match:{
query: "imposed calcs",
fields: ["cdrp","description","narrative.*","title","cop"]
}
}
]
}
},
highlight: { fields: { '*': {} } },
sort: [],
from: 0,
size: 50
}
通过运行此查询,我得到以下突出显示的对象。请注意,仅突出显示了“ calcs”一词。如何构建高亮对象以使ES高亮也为“已施加”?
"highlight": {
"description": [
"GAP Sub-window conn ONe-e: heve PP-BE Defined ASST requirem RV confsng, des MAN Imposed <em>calcs</em> mising"
]
}
我正在使用以下“描述”映射:
"description": {
"type": "text",
"analyzer": "search_synonyms"
},
"analysis": {
"analyzer": {
"search_synonyms": {
"tokenizer": "whitespace",
"filter": [
"graph_synonyms"
],
"normalizer": [
"normalizer_1"
]
}
},
"filter": {
"graph_synonyms": {
"type": "synonym_graph",
"synonyms_path": "synonym.txt"
}
},
"normalizer": {
"normalizer_1": {
"type": "custom",
"char_filter": [],
"filter": ["lowercase", "asciifolding"]
}
}
}
答案 0 :(得分:0)
编辑
我认为您的graph_synonyms
过滤器正在覆盖规范化器的过滤器。试试这个:
PUT highlighter
{
"settings": {
"analysis": {
"analyzer": {
"search_synonyms": {
"tokenizer": "whitespace",
"filter": [
"graph_synonyms",
"lowercase",
"asciifolding"
]
}
},
"filter": {
"graph_synonyms": {
"type": "synonym_graph",
"synonyms_path": "synonym.txt"
}
}
}
},
"mappings": {
"properties": {
"description": {
"type": "text",
"analyzer": "search_synonyms"
}
}
}
}
原始
我怀疑您的映射中存在某种设置会阻止匹配,因为我无法使用半默认映射来复制它:
PUT highlighter
{
"settings": {
"analysis": {
"analyzer": {
"my_analyzer": {
"tokenizer": "standard",
"filter": [
"lowercase"
]
}
}
}
},
"mappings": {
"properties": {
"description": {
"type": "text",
"fields": {
"lowercase": {
"type": "text",
"analyzer": "my_analyzer"
}
}
}
}
}
}
POST highlighter/_doc
{
"description": "GAP Sub-window conn ONe-e: heve PP-BE Defined ASST requirem RV confsng, des MAN Imposed calcs mising"
}
插入查询
GET highlighter/_search
{
"_source": [
"baseline",
"cdrp",
"date",
"description",
"dev_status",
"element",
"event",
"id"
],
"track_total_hits": true,
"query": {
"bool": {
"filter": [],
"should": [
{
"multi_match": {
"query": "imposed calcs",
"fields": [
"cdrp",
"description.lowercase",
"narrative.*",
"title",
"cop"
]
}
}
]
}
},
"highlight": {
"fields": {
"*": {}
}
},
"sort": [],
"from": 0,
"size": 50
}
屈服
[
{
"_index":"highlighter",
"_type":"_doc",
"_id":"Bf5F5HEBW-D5QnrWwTyh",
"_score":0.5753642,
"_source":{
"description":"GAP Sub-window conn ONe-e: heve PP-BE Defined ASST requirem RV confsng, des MAN Imposed calcs mising"
},
"highlight":{
"description":[
"GAP Sub-window conn ONe-e: heve PP-BE Defined ASST requirem RV confsng, des MAN <em>Imposed</em> <em>calcs</em> mising"
]
}
}
]