【发布时间】:2015-12-17 23:35:26
【问题描述】:
我想知道是否可以将带状疱疹与简单查询字符串查询一起使用。我对相关字段的映射如下所示:
{
"text_2": {
"type": "string",
"analyzer": "shingle_analyzer"
}
}
分析器和过滤器定义如下:
"analyzer": {
"shingle_analyzer": {
"type": "custom",
"tokenizer": "standard",
"filter": ["standard", "custom_delimiter", "lowercase", "stop", "snowball", "filter_shingle"]
}
},
"filter": {
"filter_shingle":{
"type":"shingle",
"max_shingle_size":5,
"min_shingle_size":2,
"output_unigrams":"true"
},
"custom_delimiter": {
"type": "word_delimiter",
"preserve_original": True
}
}
我正在执行以下搜索:
{
"query": {
"bool": {
"must": [
{
"simple_query_string": {
"analyzer": "shingle_analyzer",
"fields": [
"text_2"
],
"lenient": "false",
"default_operator": "and",
"query": "porsches small red"
}
}
]
}
}
}
现在,我有一个带有 text_2 = small red porsches 的文档。由于我使用的是 AND 运算符,我希望我的文档不匹配,因为上面的查询应该产生一个“porsches small red”的瓦片,这是一个不同的顺序。但是,当我查看匹配说明时,我只看到单个单词标记“red”“small”“porsche”,当然匹配。
SQS 是否与带状疱疹不兼容?
【问题讨论】:
-
我认为可以做到,但您的最小木瓦尺寸是多少?即使您使用匹配查询,它也会匹配,您的目标到底是什么?什么应该匹配,什么不应该匹配?
-
text_2字段的分析器在您的映射中看起来如何,是标准的吗?你能分享你的索引设置和映射吗? -
我已经用这些信息更新了问题。