【发布时间】:2016-06-21 16:50:03
【问题描述】:
我正在使用 ElasticSearch 2.3.1。
我需要创建一个查询来检查文本中是否存在特定术语(单词或单词列表)。基本上类似于 like 运算符。
如果我使用 bool/must/match 过滤器,我可以按分数对文档进行排序,但我必须删除没有我需要搜索的所有术语的文档。
目前我正在使用 2gram,这是映射...
{
"settings": {
"analysis": {
"filter": {
"2gramsto3_filter": {
"type": "ngram",
"min_gram": 2,
"max_gram": 3
}
},
"analyzer": {
"2gramsto3": {
"type": "custom",
"tokenizer": "standard",
"filter": [
"lowercase",
"2gramsto3_filter"
]
}
}
}
},
"mappings": {
"agents": {
"properties": {
"cv": {
"type": "string",
"analyzer": "2gramsto3"
}
}
}
}
但正如我在上面所写的,所有术语都必须在文本中,而不只是一个二元组。
【问题讨论】:
标签: java elasticsearch