У меня проблема с увеличением скорости поиска при использовании query_string.Я хотел бы выполнить запрос, как указано выше, в 2 с, но теперь поиск стоит около 10 с или более.Моя проблема в том, что у меня много полей в query_string, а ключевое слово немного сложное.Вот так
{
"from": 0,
"size": "20",
"query": {
"function_score": {
"query": {
"bool": {
"must": [
{
"bool": {
"should": [
[
{
"bool": {
"must": [
[
{
"multi_match": {
"fields": [
"name",
"name_jp",
"volume_unit_label",
"class_name_jp",
"maker_name",
"cas_code",
"supplier_sku",
"ean",
"sales_origin_maker_name"
],
"query": "富士",
"type": "phrase_prefix"
}
},
{
"multi_match": {
"fields": [
"name",
"name_jp",
"volume_unit_label",
"class_name_jp",
"maker_name",
"cas_code",
"supplier_sku",
"ean",
"sales_origin_maker_name"
],
"query": "エタノール",
"type": "phrase_prefix"
}
},
{
"multi_match": {
"fields": [
"name",
"name_jp",
"volume_unit_label",
"class_name_jp",
"maker_name",
"cas_code",
"supplier_sku",
"ean",
"sales_origin_maker_name"
],
"query": "特級",
"type": "phrase_prefix"
}
},
{
"multi_match": {
"fields": [
"name",
"name_jp",
"volume_unit_label",
"class_name_jp",
"maker_name",
"cas_code",
"supplier_sku",
"ean",
"sales_origin_maker_name"
],
"query": "500ml",
"type": "phrase_prefix"
}
}
]
]
}
},
{
"bool": {
"must": [
[
{
"multi_match": {
"fields": [
"name",
"name_jp",
"volume_unit_label",
"class_name_jp",
"maker_name",
"cas_code",
"supplier_sku",
"ean",
"sales_origin_maker_name"
],
"query": "富士",
"type": "phrase_prefix"
}
},
{
"multi_match": {
"fields": [
"name",
"name_jp",
"volume_unit_label",
"class_name_jp",
"maker_name",
"cas_code",
"supplier_sku",
"ean",
"sales_origin_maker_name"
],
"query": "エチルアルコール",
"type": "phrase_prefix"
}
},
{
"multi_match": {
"fields": [
"name",
"name_jp",
"volume_unit_label",
"class_name_jp",
"maker_name",
"cas_code",
"supplier_sku",
"ean",
"sales_origin_maker_name"
],
"query": "特級",
"type": "phrase_prefix"
}
},
{
"multi_match": {
"fields": [
"name",
"name_jp",
"volume_unit_label",
"class_name_jp",
"maker_name",
"cas_code",
"supplier_sku",
"ean",
"sales_origin_maker_name"
],
"query": "500ml",
"type": "phrase_prefix"
}
}
]
]
}
},
[
{
"bool": {
"must": {
"query_string": {
"fields": [
"name.keyword",
"name_jp.keyword",
"volume_unit_label.keyword",
"class_name_jp.keyword",
"maker_name.keyword",
"cas_code.keyword",
"supplier_sku.keyword",
"ean.keyword",
"sales_origin_maker_name.keyword"
],
"query": "*12343 987*"
}
}
}
},
{
"bool": {
"must": {
"query_string": {
"fields": [
"name.keyword",
"name_jp.keyword",
"volume_unit_label.keyword",
"class_name_jp.keyword",
"maker_name.keyword",
"cas_code.keyword",
"supplier_sku.keyword",
"ean.keyword",
"sales_origin_maker_name.keyword"
],
"query": "富士 エタノール 特級 500ml"
}
}
}
},
{
"bool": {
"must": {
"query_string": {
"fields": [
"name.keyword",
"name_jp.keyword",
"volume_unit_label.keyword",
"class_name_jp.keyword",
"maker_name.keyword",
"cas_code.keyword",
"supplier_sku.keyword",
"ean.keyword",
"sales_origin_maker_name.keyword"
],
"query": "*富士 エタノール 特級 500ml*"
}
}
}
},
{
"bool": {
"must": {
"query_string": {
"fields": [
"name.keyword",
"name_jp.keyword",
"volume_unit_label.keyword",
"class_name_jp.keyword",
"maker_name.keyword",
"cas_code.keyword",
"supplier_sku.keyword",
"ean.keyword",
"sales_origin_maker_name.keyword"
],
"query": "富士 エタノール 特級 500ml"
}
}
}
},
{
"bool": {
"must": {
"query_string": {
"fields": [
"name.keyword",
"name_jp.keyword",
"volume_unit_label.keyword",
"class_name_jp.keyword",
"maker_name.keyword",
"cas_code.keyword",
"supplier_sku.keyword",
"ean.keyword",
"sales_origin_maker_name.keyword"
],
"query": "*富士 エタノール 特級 500ml*"
}
}
}
},
{
"bool": {
"must": {
"query_string": {
"fields": [
"name.keyword",
"name_jp.keyword",
"volume_unit_label.keyword",
"class_name_jp.keyword",
"maker_name.keyword",
"cas_code.keyword",
"supplier_sku.keyword",
"ean.keyword",
"sales_origin_maker_name.keyword"
],
"query": "富士 エタノール 特級 500ml"
}
}
}
},
{
"bool": {
"must": {
"query_string": {
"fields": [
"name.keyword",
"name_jp.keyword",
"volume_unit_label.keyword",
"class_name_jp.keyword",
"maker_name.keyword",
"cas_code.keyword",
"supplier_sku.keyword",
"ean.keyword",
"sales_origin_maker_name.keyword"
],
"query": "*富士 エチルアルコール 特級 500ml*"
}
}
}
},
{
"bool": {
"must": {
"query_string": {
"fields": [
"name.keyword",
"name_jp.keyword",
"volume_unit_label.keyword",
"class_name_jp.keyword",
"maker_name.keyword",
"cas_code.keyword",
"supplier_sku.keyword",
"ean.keyword",
"sales_origin_maker_name.keyword"
],
"query": "富士 エチルアルコール 特級 500ml"
}
}
}
},
{
"bool": {
"must": {
"query_string": {
"fields": [
"name.keyword",
"name_jp.keyword",
"volume_unit_label.keyword",
"class_name_jp.keyword",
"maker_name.keyword",
"cas_code.keyword",
"supplier_sku.keyword",
"ean.keyword",
"sales_origin_maker_name.keyword"
],
"query": "富士 エチルアルコール 特級 500ml"
}
}
}
}
]
]
]
}
}
]
}
},
"functions": [
{
"filter": {
"match": {
"cas_code.keyword": "富士"
}
},
"weight": 20
}
]
}
}
}
Извините, мой запрос составляет около 5000 строк, и я удалил много, чтобы опубликовать его в StackOverFlow.Существует около 20 блоков query_string, которые представляют собой смесь преобразования между символами полной половины ширины.Пожалуйста, помогите, чтобы улучшить эту проблему