Elasticsearch 不允许我添加长字典 [TransportError(400)]



我正在使用lasticsearch-py在弹性中添加一些dictex我在索引和字典中添加了字典,其中包含列表,在我的代码中添加了此词典,但它给了我这样的错误: RequestError: TransportError(400, u'mapper_parsing_exception', u'failed to parse [long_spec]')搜索后,我知道我应该在弹性中添加一些地图,然后在映射中添加"long_spec":{ "type": "text" }和其他测试"long_spec"{ "type": "string" },但它不起作用。

我在我的python中使用它 self.es.index(index="new_index", doc_type='user',body=dict)我的命令就是这样:

{'long_spec': [{'header': u'Design', 'specification': [{u'Device type:': [u'Smart phone']}, {u'OS:': [u'Android (7.0)']}, {u'Form factor:': [u'Candybar']}, {u'Dimensions:': [u'6.06 x 3.03 x 0.35 inches (153.9 x 77 x 8.9 mm)']}, {u'Weight:': [u'6.38 oz (181 g)']}, {u'Features:': [u'Fingerprint (touch), Touch sensitive control keys']}, {u'Keys:': [u'Right: Volume control, Lock/Unlock key']}, {u'Colors:': [u'Black, Gold, Pink']}]}, {'header': u'Display', 'specification': [{u'Physical size:': [u'5.5 inches']}, {u'Resolution:': [u'720 x 1280 pixels']}, {u'n': [u'267 ppi']}, {u'n': [u'IPS LCD']}, {u'n': [u'70.40 %']}, {u'Colors:': [u'16 777 216']}, {u'Touchscreen:': [u'Capacitive, Multi-touch', u'n']}, {u'Features:': [u'Ambient light sensor, Proximity sensor']}]}, {'header': u'Camera', 'specification': [{u'Camera:': [u'13 megapixels', u'n', u'LED', u'n', u'F2.0', u'n', u'25 mm', u'n', u'Dual-camera (13-megapixel, 120-degree viewing angle), Autofocus (Phase detection)', u'n', u'Touch to focus, Face detection, Self-timer, Digital zoom, Geo tagging', u'n', u'Exposure compensation, ISO control, White balance presets', u'n', u'Burst mode, High Dynamic Range mode (HDR), Panorama', u'n']}, {u'Camcorder:': [u'1920x1080 (1080p HD) (30 fps)', u'n', u'Time-lapse video, Picture-taking during video recording, Digital image stabilization, Video calling, Video sharing', u'n']}, {u'Front-facing camera:': [u'8 megapixels', u'n', u'Wide Angle, Flash', u'n']}]}, {'header': u'Hardware', 'specification': [{u'n': [u'Qualcomm Snapdragon 430 8937 ']}, {u'n': [u'Octa-core, 1400 MHz, ARM Cortex-A53, 64-bit, 28 nm']}, {u'n': [u'Adreno 505', u'n']}, {u'n': [u'4 GB RAM (800 MHz) / LPDDR2']}, {u'n': [u'64 GB']}, {u'n': [u'microSD, microSDHC, microSDXC up to 256 GB']}]}, {'header': u'Battery', 'specification': [{u'n': [u'5000 mAh']}, {u'Type:': [u'Not user replaceable']}, {u'Fast Charge:': [u'Yes']}, {u'Talk time (3G):': [u'40.00 hours']}, {u'Stand-by time (4G):': [u'46.0 days (1104 hours)']}, {u'Internet use:': [u'26 hours', u'n']}, {u'Video playback:': [u'22.00 hours']}]}, {'header': u'Multimedia', 'specification': [{u'Screen mirroring:': [u'Wireless screen share']}, {u'Music player:': [u'Album, Artist, Genre, Playlists', u'n', u'Album art cover, Background playback', u'n', u'MP3, AAC, FLAC, WAV, M4A (Apple lossless), AMR, OGG, MIDI', u'n']}, {u'Video playback:': [u'MPEG4, H.263, H.264', u'n']}, {u'Radio:': [u'FM', u'n']}, {u'Speakers:': [u'Earpiece, Loudspeaker']}, {u'Headphones connector:': [u'3.5mm']}]}, {'header': u'Cellular', 'specification': [{u'GSM:': [u'850, 900, 1800, 1900 MHz']}, {u'UMTS:': [u'800, 850, 900, 1700/2100, 1900, 2100 MHz']}, {u'LTE (FDD):': [u'Bands 1, 2, 3, 4, 5, 7, 8, 12, 17, 18, 19, 26, 28']}, {u'LTE (TDD):': [u'Bands 38, 41']}, {u'Data:': [u'LTE Cat 4 (150/50 Mbit/s), HSDPA+ (4G) 42.2 Mbit/s, HSUPA 5.76 Mbit/s']}, {u'2G Data:': [u'EDGE, GPRS']}, {u'Nano SIM:': [u'Yes']}, {u'Multiple SIM cards:': [u'2 slots']}, {u'VoLTE:': [u'Yes']}, {u'Global Roaming:': [u'Yes']}]}, {'header': u'Phone features', 'specification': [{u'Sensors:': [u'Accelerometer, Gyroscope, Compass', u'n']}, {u'Notifications:': [u'Haptic feedback']}, {u'Phonebook:': [u'Unlimited entries, Caller groups, Multiple numbers per contact, Search by both first and last name, Picture ID, Ring ID']}, {u'Organizer:': [u'Calendar, Alarm, Calculator, World clock, Timer, Stopwatch, Countdown timer']}, {u'Messaging:': [u'SMS, MMS, Threaded view, Predictive text input']}, {u'E-mail:': [u'IMAP, POP3, SMTP, Microsoft Exchange', u'n']}, {u'Instant Messaging:': [u'Hangouts / Google Talk', u'n']}, {u'Other features:': [u'Voice dialing, Voice commands, Voice recording']}]}, {'header': u'Connectivity', 'specification': [{u'Bluetooth:': [u'4.1', u'n', u'Advanced Audio Distribution (A2DP), Audio/Visual Remote Control Profile (AVRCP), Generic Access (GAP), Handsfree (HFP), Headset (HSP), Message Access Profile (MAP), Object Push (OPP), Phone Book Access (PBAP)', u'n']}, {u'Wi-Fi:': [u'802.11 b, g, n', u'n', u'Yes', u'n', u'Yes', u'n']}, {u'USB:': [u'USB 2.0', u'n', u'microUSB', u'n', u'Mass storage device, USB Host, USB charging', u'n']}, {u'Charging connector:': [u'microUSB']}, {u'n': [u'GPS, A-GPS, Glonass, BeiDou']}, {u'Navigation:': [u'Turn-by-turn navigation, Voice navigation']}, {u'Other:': [u'VoIP, Tethering, Computer sync, OTA sync']}]}, {'header': u'Availability', 'specification': [{u'Officially announced:': [u'17 Aug 2017']}]}]}

每当您要索引的字段与指定的映射不同时,您都会获得mapper_parsing_exception。在您的情况下, long_spec 字典必须在各种文档中具有不同的数据类型,因此错误。您可以通过以下内容来复制错误:

尝试索引文档

PUT regexpindex/product/4
{ 
    "documentId": 1234,
    "someOtherInfo": "Product1\Product1",
    "permissions": ["a", "b", "c", "g"]
}

尝试用documentid字段的字符串数据类型索引另一个文档

PUT regexpindex/product/4
{ 
    "documentId": "some-string",
    "someOtherInfo": "Product1\Product1",
    "permissions": ["a", "b", "c", "g"]
}

您将获得mapper_parsing_exception。

请确保所有文档在所有字段中具有相同的数据类型。如果您认为这些文档已畸形,则还可以忽略具有不同数据类型的文档。在此处阅读有关它的更多信息。

相关内容

  • 没有找到相关文章

最新更新