solr ElasticSerch匹配查询结果为空

zbq4xfa0  于 2022-11-05  发布在  Solr
关注(0)|答案(1)|浏览(193)

我有一个文档索引,其中包含3个字段namesummarytags
name是包含小短语的短文本,例如“Japanese Handmade Sword”(日本手工剑)
summary是描述某些产品的长文本,可能超过200个字。
tags是包含关键字的字符串数组,例如["Japanese", "Antiquity", "Weapon", "Katana"]
我需要将这些字段合并到一个搜索查询中,以获得所需的搜索结果。例如,当用户搜索“Japan”时,我应该得到此项目。但是,match查询总是给我空结果,尽管我有数据,并且可以在没有查询的情况下查看所有文档。
下面是我的Map和索引设置,它为字段执行一些标记化。

PUT lessons
{
  "settings": {
    "index": {
      "number_of_shards": 1
    },
    "refresh_interval": "5s",
    "similarity": {
      "string_similarity": {
        "type": "BM25"
      }
    },
    "analysis": {
      "analyzer": {
        "autocomplete": {
          "filter": [
            "lowercase"
          ],
          "tokenizer": "standard"
        },
        "autocomplete_search": {
          "type": "custom",
          "filter": "lowercase",
          "tokenizer": "standard"
        }
      },
    }
  },
  "mappings": {
    "properties": {
      "name": {
        "type": "text",
        "analyzer": "autocomplete",
        "search_analyzer": "autocomplete_search",
        "fielddata": true,
        "fields": {
          "keyword": {
            "type": "keyword"
          }
        }
      },
      "summary": {
        "type": "text",
        "analyzer": "autocomplete",
        "search_analyzer": "autocomplete_search",
        "fielddata": true,
        "fields": {
          "keyword": {
            "type": "keyword"
          }
        }
      },
      "tags": {
        "type": "text",
        "search_analyzer": "autocomplete_search",
        "fielddata": true,
        "fields": {
          "keyword": {
            "type": "keyword"
          }
        }
      }
    }
  }
}

我正在使用Kibana,但在下面运行查询时没有得到任何结果

GET lessons/_search
{
  "query": {
    "match": {
      "summary": "Japan"
    }
  }
}

我的索引设置或Map有什么问题?

2w3kk1z5

2w3kk1z51#

您可以使用multi-match query在多个字段中搜索同一查询文本

{
  "query": {
    "multi_match" : {
      "query":    "Japan", 
      "fields": [ "summary", "tags", "name" ] 
    }
  }
}

相关问题