假设我有一个已分析的字段,如果该字段以提供的短语开头,我想进行与该字段匹配的搜索。例如,假设我有两个文档,每个文档都有一个字段:
doc1 : {
name: "the dog is happy"
}
doc2: {
name: "happy the dog is"
}
说我的查询字符串是“狗是”。我想匹配doc1而不是doc2。我怎么能这样做?
谢谢!
答案 0 :(得分:3)
如果您使用特殊令牌标记文档中每个句子的开头,则可以执行phrase matching query:
因此,如果您将文档编入索引
doc1 : {
name: "START the dog is happy"
}
doc2: {
name: "START happy the dog is"
}
您可以使用此查询获得所需的结果:
POST /test/test/_search
{
"query": {
"match_phrase": {
"name": "START the dog is"
}
}
}
答案 1 :(得分:-1)
duration
还
加速前缀查询
您可以使用index_prefixes映射参数来加速前缀查询。如果启用,Elasticsearch会在一个单独的字段中索引2到5个字符之间的前缀。这样,Elasticsearch可以以更大的索引为代价更有效地运行前缀查询。