2017-08-30 4 views
0

elasticsearch-pyを使用して弾性のインデックスにいくつかの辞書を追加しています インデックスに辞書を追加し、リストを辞書に追加しました。コードはこの辞書を追加していましたが、これは私にこのようなエラーを与えていました:と他のテストで"long_spec"{ "type": "string" }をマッピングに追加しても動作しません。Elasticsearchは長いdictを追加できません[TransportError(400)]

私は私のpython self.es.index(index="new_index", doc_type='user',body=dict) でこれを使用して、私のdictのは、このようなものです:あなたがインデックスにしようとしている分野が異なるのである時はいつでもあなたはmapper_parsing_exceptionを取得します

{'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']}]}]}

答えて

3

タイプを指定したマッピングよりも優先されます。あなたのケースでは、long_spec辞書は、さまざまな文書で異なるデータ型を持つ必要があります。したがって、エラーです。文書

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

インデックスへ

てみてくださいインデックスに

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

文書IDフィールドの文字列データ型を持つ別のドキュメントを試してみて、あなたがされます:あなたは下に次のことで、エラーを複製することができますmapper_parsing_exceptionを取得します。

すべてのフィールドで、すべてのドキュメントのデータ型が同じであることを確認してください。これらの文書の形式が間違っていると思われる場合は、異なるデータ型を持つ文書を無視することもできます。それについてもっと読むhere

+0

'' ignore_malformed ":true'データ型 ':" integer "'で動作しますが、私の型はテキストとオブジェクトです。とにかく整数型で追加して新しいインデックスとマッピングをテストします。もう一度やり直してください。 '400、 'mapper_parsing_exception'、' –

関連する問題