2 回答
TA贡献1873条经验 获得超9个赞
根据我们作为评论的讨论,我现在可以理解您的意思以及您的实际问题是什么。
当您在 elasticsearch 中使用默认值时,elasticsearch 正在使用标准分析器分析您的文本,该分析器基本上将您的文本拆分为标记。当您使用匹配查询在该字段上进行搜索时,将应用相同的分析过程。这意味着您的查询文本也被分解为标记。该match查询运行“或”所有生成的标记。
您可以在 Kibana 开发者控制台中复制和粘贴的以下示例显示:
DELETE test
PUT test
PUT test/_doc/1
{
"name": "추성훈의 코몽트 기모본딩바지 3+1종_총 4종"
}
PUT test/_doc/2
{
"name": "추성훈의 기모본딩바지 4종"
}
GET test/_search
{
"query": {
"match": {
"name": "추성훈의 코몽트 기모본딩바지 3+1종_총 4종"
}
}
}
它给出了以下结果:
{
"took" : 12,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : 2,
"max_score" : 1.7260926,
"hits" : [
{
"_index" : "test",
"_type" : "_doc",
"_id" : "1",
"_score" : 1.7260926,
"_source" : {
"name" : "추성훈의 코몽트 기모본딩바지 3+1종_총 4종"
}
},
{
"_index" : "test",
"_type" : "_doc",
"_id" : "2",
"_score" : 0.8630463,
"_source" : {
"name" : "추성훈의 기모본딩바지 4종"
}
}
]
}
}
如果您没有在索引设置中定义任何分析器,那么可能elasticsearch 生成了一个.keyword未分析的子字段。您可以像这样查询:
GET test/_search
{
"query": {
"term": {
"name.keyword": "추성훈의 코몽트 기모본딩바지 3+1종_총 4종"
}
}
}
这现在只提供完全匹配:
{
"took" : 3,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : 1,
"max_score" : 0.2876821,
"hits" : [
{
"_index" : "test",
"_type" : "_doc",
"_id" : "1",
"_score" : 0.2876821,
"_source" : {
"name" : "추성훈의 코몽트 기모본딩바지 3+1종_총 4종"
}
}
]
}
}
如果您知道永远不会运行全文搜索,而只会运行完全匹配,并且不需要对name字段进行聚合或排序,那么您可以按如下方式定义索引:
DELETE test
PUT test
{
"mappings": {
"_doc": {
"properties": {
"name": {
"type": "text",
"analyzer": "keyword"
}
}
}
}
}
PUT test/_doc/1
{
"name": "추성훈의 코몽트 기모본딩바지 3+1종_총 4종"
}
PUT test/_doc/2
{
"name": "추성훈의 기모본딩바지 4종"
}
GET test/_search
{
"query": {
"term": {
"name": "추성훈의 코몽트 기모본딩바지 3+1종_총 4종"
}
}
}
这也给出了一个结果,并且比默认行为需要更少的磁盘空间。
TA贡献1802条经验 获得超10个赞
正如您所怀疑的那样,我认为 elasticsearch 会根据它们在您的数据中匹配它们时产生的排名,为您简单地生成 10 个结果。
尝试这个:
body = {
'from': 0,
'size': 1,
'query': {
'bool': {
'must': [
{
'match': {
'Category' : 'category name',
}
},
{
'match' : {
'name' : 'product name'
}
}
]
}
}
}
来源:https : //www.elastic.co/guide/en/elasticsearch/reference/current/search-request-from-size.html
添加回答
举报