按照指南this的链接,我尝试使用stemmer
和exact
映射一些索引文件。
这是我们索引的映射
// PUT bdcms_news_new{
"settings":{
"analysis":{
"analyzer":{
"italian_exact":{
"tokenizer":"standard",
"filter":[
"lowercase"
]
},
"space_analyzer":{
"type":"custom",
"tokenizer":"keyword",
"char_filter":[
],
"filter":[
"whitespace_normalization",
"trim"
]
}
},
"filter":{
"whitespace_normalization":{
"type":"pattern_replace",
"pattern":"\\s+",
"replacement":" "
}
}
}
},
"mappings":{
"news":{
"properties":{
"authorsIds":{
"type":"long"
},
"authorsNames":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"authors":{
"properties":{
"id":{
"type":"long"
},
"name":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
}
}
},
"AnnoDoc":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"GiornoDoc":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"MeseDoc":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"TypeDoc":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"thematicsAreas":{
"type":"text",
"analyzer":"space_analyzer",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"thematicsCategoriesAreas":{
"type":"text",
"analyzer":"space_analyzer",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"docCorrelati":{
"properties":{
"title_doc":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"url_doc":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
}
}
},
"videoCorrelati":{
"properties":{
"id":{
"type":"long"
}
}
},
"articoliCorrelati":{
"properties":{
"id":{
"type":"long"
}
}
},
"bannerCorrelati":{
"properties":{
"id":{
"type":"long"
}
}
},
"normeCorrelate":{
"properties":{
"id":{
"type":"long"
}
}
},
"prassiCorrelate":{
"properties":{
"id":{
"type":"long"
}
}
},
"giurisprudenzaCorrelata":{
"properties":{
"id":{
"type":"long"
}
}
},
"CCNLCorrelati":{
"properties":{
"id":{
"type":"long"
}
}
},
"date":{
"type":"date",
"format":"strict_date_optional_time||epoch_millis"
},
"dateIT":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"datejs":{
"type":"float"
},
"timestamp":{
"type":"date",
"format":"strict_date_optional_time||epoch_millis"
},
"cms_create_date":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"cms_update_date":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"cms_writer_id":{
"type":"long"
},
"paidContent":{
"type":"boolean"
},
"IdConsulenzaOld":{
"type":"long"
},
"nodeName":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"niceUrl":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"ExtraTextSearch":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"DataPublishFrom":{
"type":"date",
"format":"strict_date_optional_time||epoch_millis"
},
"DataPublishFromIT":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"DataPublishFromjs":{
"type":"float"
},
"DataPublishTo":{
"type":"date",
"format":"strict_date_optional_time||epoch_millis"
},
"DataPublishToIT":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"DataPublishTojs":{
"type":"float"
},
"bodyHtml":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"bodyText":{
"type":"text",
"analyzer":"italian",
"fields":{
"exact":{
"type":"text",
"analyzer":"italian_exact"
},
"raw":{
"type":"keyword",
"ignore_above":256
}
}
},
"shortDescription":{
"type":"text",
"analyzer":"italian",
"fields":{
"exact":{
"type":"text",
"analyzer":"italian_exact"
},
"raw":{
"type":"keyword",
"ignore_above":256
}
}
},
"title":{
"type":"text",
"analyzer":"italian",
"fields":{
"exact":{
"type":"text",
"analyzer":"italian_exact"
},
"raw":{
"type":"keyword",
"ignore_above":256
}
}
}
}
}
}
}
但是,当我启动查询时,无论是查找精确的还是尝试使用词干分析器,这似乎都不起作用。这是我拥有的一种查询类型:
{
"size":100,
"from":0,
"query":{
"bool":{
"must":{
"query_string":{
"query":"fisco",
{/* Or "\"fisco\"" when i search exact */}
"fields":[
"title"
],
"quote_field_suffix":".exact"
}
},
"filter":{
"bool":{
"must":[
{
"range":{
"timestamp":{
"lt":"2019-04-08T23:59:59"
}
}
},
{
"term":{
"isFirst":true
}
}
],
"must_not":[
{
"exists":{
"field":"Previgenza"
}
}
]
}
}
}
},
"sort":{
"datejs":{
"order":"desc"
}
},
"highlight":{
"pre_tags":[
"< strong>< em>"
],
"post_tags":[
" "
]
}
}
但是返回的结果是相同的。 我认为该错误出在搜索查询中,但是我不确定。