दिलचस्प पोस्ट
scanf regex – सी एंड्रॉइड सेवा को हमेशा चलाने की जरूरत है (कभी भी रोकें या रोकें) किसी स्ट्रिंग पर क्रमबद्ध करें जिसमें कोई संख्या हो सकती है मैं एक्जिक्यूटिव जावा प्रोग्राम कैसे बनाऊं? जावास्क्रिप्ट: स्ट्रिंग से एचटीएमएल टैग पट्टी कैसे करें? बड़े स्विंग घटक छपाई पैकेज आयात करें। * बनाम आयात पैकेज। विशिष्ट टाइप IPhone में उद्देश्य-सी में प्रकार उपयोगकर्ता एजेंट स्टाइलशीट क्या है उस विशेषता के नाम से संबंधित स्ट्रिंग को दिए गए वस्तु विशेषता को कैसे एक्सेस किया जाए हैशिंग और एन्क्रिप्शन एल्गोरिदम के बीच मूल अंतर स्थैतिक खोजशब्द का उन्मूलन … और नहीं? मैं सीएसएस के साथ एक संपूर्ण वेब पेज कैसे स्केल कर सकता हूं? LINQ का उपयोग करके एक सूची <स्ट्रिंग> के अंदर सभी स्ट्रिंग्स को सचेत करें नई तिथि () क्रोम और फ़ायरफ़ॉक्स में अलग ढंग से काम करता है

एकाधिक निकाय बाइंडिंग के साथ लचीलाशोध सूचकांक संरचना कैसे सेटअप करें

हाल ही में मैंने माइस्स्कल (MySQL) का प्रयोग करके PHP में लिखी गई विरासत ई-कॉमर्स ऐप में एलैस्टिकशोच (ईएस) कार्यान्वयन पर काम करना शुरू कर दिया है। मैं इस सब चीज़ों के लिए पूरी तरह से नया हूँ और डॉक्स पढ़ना ठीक है, फिर भी मुझे वास्तव में किसी को अनुभव करने के लिए अनुभव की जरूरत है।

ईएस प्रलेखन से मैं एक नया क्लस्टर सेटअप करने में सक्षम था और मुझे यह भी पता चला कि नदियों को हटा दिया गया है और उन्हें बदला जाना चाहिए, इसलिए मैंने उन्हें लॉगस्टैश और जेडीबीसी माय एसक्यूएल कनेक्टर के साथ बदल दिया।

इस बिंदु पर मेरे पास है:

  • ElasticSearch
  • Logstash
  • JDBC MySQL ड्राइवर
  • MySQL सर्वर

आवेदन का डेटाबेस संरचना वास्तव में इष्टतम नहीं है और इसे बदलने में बहुत मुश्किल है, लेकिन मैं इसे सबसे अच्छा संभव तरीके से ES सूचकांक में दोहराना चाहता हूं।

डीबी संरचना:

उत्पाद

+-------------------------------+-------+--------+ | Id | Title | Price | +-------------------------------+-------+--------+ | 00c8234d71c4e94f725cd432ebc04 | Alpha | 589,00 | | 018357657529fef056cf396626812 | Beta | 355,00 | | 01a2c32ceeff0fc6b7dd4fc4302ab | Gamma | 0,00 | +-------------------------------+-------+--------+ 

झंडे

 +------------+-------------+ | Id | Title | +------------+-------------+ | sellout | Sellout | | discount | Discount | | topproduct | Top Product | +------------+-------------+ 

झंडे उत्पाद (n: मी पिवट)

 +------+-------------------------------+------------+------------+ | Id | ProductId | FlagId | ExternalId | +------+-------------------------------+------------+------------+ | 1552 | 00c8234d71c4e94f725cd432ebc04 | sellout | NULL | | 2845 | 00c8234d71c4e94f725cd432ebc04 | topproduct | NULL | | 9689 | 018357657529fef056cf396626812 | discount | NULL | | 4841 | 01a2c32ceeff0fc6b7dd4fc4302ab | discount | NULL | +------+-------------------------------+------------+------------+ 

उन स्ट्रिंग आईडी एक पूर्ण आपदा हैं (लेकिन मुझे उनके साथ अब सौदा करना होगा)। सबसे पहले मैंने सोचा कि मुझे ईएस के लिए उत्पाद इंडेक्स का एक फ्लैट संरचना करना चाहिए, लेकिन कई इकाई बाइंडिंग के बारे में क्या?

वेब के समाधान से एकत्रित समाधान "एकाधिक निकाय बाइंडिंग के साथ लचीलाशोध सूचकांक संरचना कैसे सेटअप करें"

यह एक शानदार शुरुआत है!

मैं निश्चित रूप से इसे पूरी तरह से समतल कर दूंगा (यानी denormalize ) और उत्पाद दस्तावेज़ों के साथ आना चाहिए जो कि नीचे की तरह दिखते हैं इस तरह से आप प्रत्येक उत्पाद के लिए flags सरणी बनाने के द्वारा उत्पादों और झंडे के बीच एन: एम रिश्ते से छुटकारा पाएं। इस प्रकार यह झंडे पूछना आसान होगा।

 { "id": "00c8234d71c4e94f725cd432ebc04", "title": "Alpha", "price": 589.0, "flags": ["Sellout", "Top Product"] } { "id": "018357657529fef056cf396626812", "title": "Beta", "price": 355.0, "flags": ["Discount"] } { "id": "01a2c32ceeff0fc6b7dd4fc4302ab", "title": "Gamma", "price": 0.0, "flags": ["Discount"] } 

उत्पाद मानचित्रण प्रकार इस तरह दिखेगा:

 PUT products { "mappings": { "product": { "properties": { "id": { "type": "string", "index": "not_analyzed" }, "title": { "type": "string" }, "price": { "type": "double", "null_value": 0.0 }, "flags": { "type": "string", "index": "not_analyzed" } } } } } 

चूंकि आपके पास पहले से लॉग -स्टैश जेडीबीसी इनपुट है, आप जो भी याद नहीं रखते हैं, वह उत्पादों और संबद्ध झंडे लाने के लिए उचित एसक्यूएल क्वेरी है।

  SELECT p.Id as id, p.Title as title, p.Price as price, GROUP_CONCAT(f.Title) as flags FROM Products p JOIN flagsProducts fp ON fp.ProductId = p.Id JOIN Flags f ON fp.FlagId = f.id GROUP BY p.Id 

आप इन पंक्तियों को किस प्रकार प्राप्त करेंगे:

 +-------------------------------+-------+-------+---------------------+ | id | title | price | flags | +-------------------------------+-------+-------+---------------------+ | 00c8234d71c4e94f725cd432ebc04 | Alpha | 589 | Sellout,Top product | | 018357657529fef056cf396626812 | Beta | 355 | Discount | | 01a2c32ceeff0fc6b7dd4fc4302ab | Gamma | 0 | Discount | +-------------------------------+-------+-------+---------------------+ 

लॉगस्टैस फ़िल्टर का प्रयोग करके आप flags को एक सरणी में विभाजित कर सकते हैं और आप जाने के लिए अच्छा है