इलास्टिक्स खोज में खोज के बाद गिनती और क्रम में इसके छँटाई मापदंडों से मेल खाना चाहिए। तो मैं सोच रहा था कि पिछले परिणाम से स्कोर कैसे प्राप्त करें (उदाहरण पृष्ठ 1) इसे अगले पृष्ठ के लिए खोज के रूप में उपयोग करने के लिए। पिछली खोज में अंतिम दस्तावेज़ के स्कोर का उपयोग करते समय मुझे एक समस्या का सामना करना पड़ा। स्कोर 1.0 था, और चूंकि सभी दस्तावेजों में 1.0 अंक हैं, इसलिए अगले पृष्ठ का परिणाम शून्य (खाली) निकला।

यह वास्तव में समझ में आता है, क्योंकि मैं उन परिणामों के लिए लोचदार खोज पूछ रहा हूं जिनमें 1.0 से कम रैंक (स्कोर) है जो शून्य है, इसलिए मैं अगले पृष्ठ को प्राप्त करने के लिए किस स्कोर का उपयोग करता हूं।

नोट: मैं टाईब्रेकर आईडी द्वारा स्कोर के आधार पर क्रमबद्ध कर रहा हूं, इसलिए एक संभावित समाधान स्कोर के लिए उच्च मूल्य (1000 कहें) का उपयोग कर रहा है।

1
Said Al Souti 29 पद 2019, 20:53
ऑफ़सेट पर परिणाम प्राप्त करने के लिए आप से पैरामीटर का उपयोग क्यों नहीं कर सकते?
 – 
Dennis
30 पद 2019, 01:42
प्रदर्शन कारणों से, मेरे मामले में से और आकार का उपयोग इस दस्तावेज़ के अनुसार नहीं किया जा सकता है: elastic.co/guide/en/elasticsearch/reference/current/…
 – 
Said Al Souti
30 पद 2019, 18:01
क्या आप सुनिश्चित हैं कि स्कोर के आधार पर खोजना और तेज़ होगा? साथ ही, ध्यान दें कि दस्तावेज़ों के अनुसार स्कोर प्रतिलिपि प्रस्तुत करने योग्य नहीं हैं (कोई कामकाज नहीं मानते)। इसका मतलब है कि आपका दृष्टिकोण काम नहीं कर सकता है। elastic.co/guide/en/elasticsearch/reference/ वर्तमान/…
 – 
Dennis
31 पद 2019, 05:01
मैं डेनिस से पूरी तरह सहमत हूं, प्रत्येक अनुरोध में स्कोर भिन्न हो सकते हैं, जो इसे पैरामीटर के बाद खोज के रूप में अविश्वसनीय बनाते हैं। तो प्रासंगिकता के आधार पर क्रमबद्ध करते समय आप पेजिनेशन के लिए उपयोग करने का क्या सुझाव देते हैं?
 – 
Said Al Souti
31 पद 2019, 08:09
यह आपके उपयोग के मामले पर निर्भर करता है। खोज में, पहले कुछ पृष्ठों को देखने की आवश्यकता दुर्लभ है। "प्रेषक" ठीक रहेगा यदि आप पहले कुछ पृष्ठों को नहीं देख रहे हैं। स्क्रॉल एपीआई पर एक नज़र डालें, जो आपको संपूर्ण डेटासेट के माध्यम से कुशलतापूर्वक पुनरावृति करने की अनुमति देता है। ध्यान दें कि स्क्रॉल संदर्भ को जीवित रखना महंगा है, इसलिए यह वास्तव में अंकन के लिए नहीं है, पुनरावृत्ति के लिए और अधिक है। हालांकि, आप अपने आवेदन के परिणामों को कैश करने के लिए स्क्रॉल एपीआई का उपयोग कर सकते हैं? इसके अलावा, मुझे नहीं लगता कि कोई अन्य समर्थित तरीके हैं। मुझे बताएं कि क्या यह आपके उपयोग के मामले को हल नहीं करता है।
 – 
Dennis
31 पद 2019, 18:39

1 उत्तर

सबसे बढ़िया उत्तर

आप जो कर रहे हैं, ऐसा लगता है कि उसे काम करना चाहिए, जैसे इलास्टिक टीम के एक सदस्य द्वारा समझाया गया। टाईब्रेकर के रूप में दस्तावेज़ आईडी (दूसरे अनुक्रमित फ़ील्ड में कॉपी किया गया) का उपयोग करते समय यह मेरे लिए (ईएस 7.7 में) बंधे हुए स्कोर के साथ भी काम करता है। यह सच है कि पेजिंग करते समय अतिरिक्त दस्तावेज़ों को अनुक्रमित करने से आपका स्कोर थोड़ा अस्थिर हो जाएगा, लेकिन अंतिम उपयोगकर्ता के लिए एक महत्वपूर्ण समस्या पैदा करने के लिए पर्याप्त नहीं है। यदि आपको बैच कार्य के लिए विश्वसनीय होने की आवश्यकता है, तो स्क्रॉल एपीआई बेहतर विकल्प है।

{
    "query": {
        ...
    },
    "search_after": [
        12.276552,
        14173
    ],
    "sort": [
        { "_score": "desc" },
        { "id": "asc" }
    ]
}
3
Trevor Robinson 20 अक्टूबर 2020, 04:51