syn c mongodb для эластичного поиска с уже сопоставленным индексом - PullRequest
0 голосов
/ 07 февраля 2020

Я хочу указать c тип данных / отображение вasticsearch для определенных полей. прикрепление отображения индекса ниже. и я хочу синхронизировать c мои данные MongoDB с эластичным поиском в режиме реального времени. Я нашел несколько библиотек, которые поддерживают syn c функциональность: mon go -коннектор , composer транспортер и ab c

Все это работает без предопределенного отображения индекса. Но когда я добавляю пользовательское отображение в это время, функциональность syn c не работает между этой коллекцией и индексированием MongoDB иasticsearch.

Пользовательское отображение

curl -X PUT "http://localhost:9200/products_sync?pretty" -H 'Content-Type: application/json' -d'
{
  "settings": {
    "index": {
      "analysis": {
        "filter": {},
        "analyzer": {
          "keyword_analyzer": {
            "filter": [
              "lowercase",
              "asciifolding",
              "trim"
            ],
            "char_filter": [],
            "type": "custom",
            "tokenizer": "keyword"
          },
          "edge_ngram_analyzer": {
            "filter": [
              "lowercase"
            ],
            "tokenizer": "edge_ngram_tokenizer"
          },
          "edge_ngram_search_analyzer": {
            "tokenizer": "lowercase"
          },
          "singular_plural_analyzer": {
            "type": "snowball"
          }
        },
        "tokenizer": {
          "edge_ngram_tokenizer": {
            "type": "edge_ngram",
            "min_gram": 2,
            "max_gram": 5,
            "token_chars": [
              "letter"
            ]
          }
        }
      }
    }
  },
  "mappings": {
      "properties": {
        "Art Medium": {
        "type": "text",
        "fields": {
          "keyword": {
            "type": "keyword",
            "ignore_above": 256
          }
        }
      },
      "Artwork Surface": {
        "type": "keyword"
      },
      "active": {
        "type": "long"
      },
      "attributes": {
        "properties": {
          "Art Medium": {
            "properties": {
              "active": {
                "type": "text",
                "fields": {
                  "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                  }
                }
              },
              "filterable": {
                "type": "text",
                "fields": {
                  "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                  }
                }
              },
              "value_display": {
                "type": "text",
                "fields": {
                  "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                  }
                }
              },
              "values": {
                "type": "text",
                "fields": {
                  "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                  }
                }
              }
            }
          }
        }
      },
      "brand_id": {
        "type": "long"
      },
      "category_ids": {
        "type": "keyword"
      },
      "category_processed": {
        "type": "long"
      },
      "id": {
        "type": "long"
      },
      "keywords": {
        "type": "keyword"
      },
      "meta_desc": {
        "type": "text",
        "fields": {
          "keyword": {
            "type": "keyword",
            "ignore_above": 256
          }
        }
      },
      "model_number": {
        "type": "keyword"
      },
      "name": {
        "type": "keyword"
      },
      "new": {
        "type": "long"
      },
      "price": {
        "type": "double"
      },
      "primary_image_url": {
        "type": "keyword"
      },
      "product_pdf_url": {
        "type": "text",
        "fields": {
          "keyword": {
            "type": "keyword",
            "ignore_above": 256
          }
        }
      },
      "search_normal": {
        "type": "keyword"
      },
      "search_singular_plural": {
        "type": "text",
        "fields": {
          "completion": {
            "type": "completion",
            "analyzer": "simple",
            "preserve_separators": true,
            "preserve_position_increments": true,
            "max_input_length": 50
          },
          "edgengram": {
            "type": "text",
            "analyzer": "edge_ngram_analyzer",
            "search_analyzer": "edge_ngram_search_analyzer"
          },
          "keywordstring": {
            "type": "text",
            "analyzer": "keyword_analyzer"
          }
        },
        "analyzer": "singular_plural_analyzer"
      },
      "slug": {
        "type": "keyword"
      },
      "uom": {
        "type": "keyword"
      },
      "update_date": {
        "type": "date",
        "format": "yyyy-MM-dd HH:mm:ss"
      }
      }
  }
}
'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...