أهلا ،
لديّ مستند حول Elastic search بالتنسيق أدناه.
{
"المعرف": 1 ،
"الاسم": "باب أخضر" ،
"السعر": 12.50،
"العلامات": ["المنزل" ، "الأخضر"]
}
الآن أريد تحديث نفس المستند بقيمة جديدة على مجموعة "العلامات".
القيمة الجديدة هي "أصفر".
بعد تحديث المستند "الأصفر" ليكون موجودًا ، يجب أن يتم عرض المستند الخاص بي على النحو التالي.
{
"المعرف": 1 ،
"الاسم": "باب أخضر" ،
"السعر": 12.50،
"العلامات": ["المنزل" ، "الأخضر" ، "الأصفر"]
}
سؤال: كيف تدمج القيمة الجديدة مع القيم الموجودة؟
شخص ما من فضلك ارشدني على هذا؟
ما عليك سوى إعادة فهرسة المستند ، وسيقوم بتحديثه بعد ذلك. انظر http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-index_.html
مرحبًا Markwalkom ،
أعد فهرسة المستند الذي يقوم بالكتابة فوق / تحديث القيم القديمة إلى قيم جديدة.
أعني ، كان بإمكاني رؤية ملف json التالي بعد إعادة الفهرسة أو استدعاء التحديث و upert api.
{
"المعرف": 1 ،
"الاسم": "باب أخضر" ،
"السعر": 12.50،
"العلامات": ["الأصفر"]
}
في الإخراج json ، فقدت قيمي القديمة من علامة المصفوفة
"العلامات": ["المنزل" ، "الأخضر"]
Java Api لتحديث المستند الموجود أو إنشاء مستند جديد إذا لم يكن الخروج.
IndexRequest indexRequest = new IndexRequest ("user"، "test"، "1")
.source (باني) ؛
UpdateRequest updateRequest = new UpdateRequest ("مستخدم" ، "اختبار" ، "1")
.doc (منشئ)
.upsert (indexRequest) ؛
client.update (updateRequest) .get () ،
هذا بالضبط ما يحدث خلف الكواليس. تحديث API احصل على المستند السابق ، ودمج القيم ، وفهرسة المستند الجديد الكامل.
راجع للشغل يرجى طرح الأسئلة على القائمة البريدية. هذه المساحة مخصصة للمشكلات أو طلبات الميزات.