वर्डप्रेस कैसे पर्दे के पीछे काम करता है?


11

मैं कस्टम पोस्ट प्रकारों की एक सीमा को खोजने के लिए वर्डप्रेस खोज का उपयोग कर रहा हूं और उपयोगकर्ता को प्रत्येक व्यक्तिगत पोस्ट प्रकार में ड्रिल-डाउन करने की अनुमति देता हूं।

हालाँकि मुझे लग रहा है कि वर्डप्रेस वापस नहीं आ रहा है जो मैं पहले 'सबसे अच्छा' मैच होगा। उदाहरण के लिए, यदि मैं Microsoft के लिए खोज करता हूं, तो जिन पृष्ठों में अनियमित रूप से शब्द समाहित हैं, वे अभी भी उन पृष्ठों से पहले वापस आ गए हैं जो नियमित रूप से इस शब्द का उपयोग करते हैं।

मूल रूप से मैं कुछ जानकारी खोजने की कोशिश कर रहा हूं कि वर्डप्रेस कैसे पृष्ठों को रैंक करता है और प्रासंगिकता निर्धारित करता है और अगर मैं किसी भी प्लगइन्स को स्थापित किए बिना इसे प्रभावित कर सकता हूं ।

किसी भी मदद की बहुत सराहना की।


2
इस साइट के लिए यह एक भयानक व्यापक प्रश्न है - क्या पूछना है और क्या नहीं पूछना है। मैंने कुछ त्वरित Google खोज की, और इस पर आया: वर्डप्रेस 'सर्च सॉक कम (यह '08 से है, हालांकि, YMMV)। प्लगइन्स के बिना कार्यक्षमता को प्रभावित करने के लिए - यदि आपको दूसरों के प्लगइन्स से एलर्जी है, तो आप शायद अपना खुद का एक लिखने जा रहे हैं। प्लगइन्स बस WP कार्यों को प्रभावित करते हैं, और यही आप करने की कोशिश कर रहे हैं। सही?
पैट जे।

1
धन्यवाद, यह नहीं है कि मैं दूसरों के प्लगइन्स का उपयोग करने से बचना नहीं चाहता, अधिक तथ्य यह है कि मैं 'प्लगइन स्प्राएल' से बचना चाहता हूं, अर्थात "ओह, मेरे पास इसके लिए एक प्लगइन होगा और वह" और इससे पहले कि आप इसे जानते हैं। आप उनमें से 30 चला रहे हैं।
क्रिस सिप

मैं समझता हूं और सहानुभूति रखता हूं। मैं कई प्लगइन्स चलाता हूं, लेकिन मैंने उनमें से एक गुच्छा लिखा है।
पैट जे

जवाबों:


10

EDIT - वर्डप्रेस का वर्तमान संस्करण प्रासंगिकता का समर्थन करता है, इसलिए यह उत्तर अब सटीक नहीं है।


रैंक या प्रासंगिकता की कोई अवधारणा नहीं है, यह पोस्ट शीर्षक और सामग्री पर सिर्फ एक साधारण LIKE क्वेरी है:

($wpdb->posts.post_title LIKE '{$n}{$term}{$n}') OR ($wpdb->posts.post_content LIKE '{$n}{$term}{$n}')

आप posts_searchखोज क्वेरी को संशोधित करने या पूरी तरह से बदलने के लिए फ़िल्टर का उपयोग कर सकते हैं । से /wp-includes/query.php:

// Allow plugins to contextually add/remove/modify the search section of the database query
$search = apply_filters_ref_array('posts_search', array( $search, &$this ) );

कोड पृष्ठ पर उपलब्ध क्वेरी फ़िल्टरWP_Query भी देखें ।


4
अजीब बात है कि आपको कहना चाहिए ... Nacin ने लगभग एक घंटे पहले प्रासंगिकता के आधार पर कोड को प्रतिबद्ध किया था। वास्तव में, शायद उसी समय जब आप अपना उत्तर लिख रहे थे। :) core.trac.wordpress.org/changeset/25632
डेव रॉस

बड़े / लोकप्रिय ब्लॉगों के लिए, सभी सामग्री की खोज करना बहुत ही अवास्तविक है। बिना क्वेरी के "OR (...)" को हटाए बिना इसे गति देने का अनुशंसित तरीका क्या है। क्या मुझे एक नया प्रश्न प्रस्तुत करना चाहिए या क्या आप अपने उत्तर का विस्तार कर सकते हैं?
पीजे ब्रुनेट

5

के बाद से वर्डप्रेस 3.7 (अक्टूबर 2013) , खोज परिणाम निम्न मापदंडों के आधार पर हल कर रहे हैं (देखें टिकट 7394 ):

  • पोस्ट शीर्षक में पूर्ण वाक्य मैच।
  • पोस्ट शीर्षक में सभी खोज शब्द।
  • पोस्ट शीर्षक में कोई खोज शब्द।
  • पूर्ण वाक्य पोस्ट सामग्री में मेल खाता है।

प्रत्येक अनुभाग और किसी भी शेष पोस्ट को तिथि के अनुसार क्रमबद्ध किया जाता है।

नए फ़िल्टर भी हैं:

  • wp_search_stopwordsमें फिल्टर शब्दों को अनदेखा करने के लिए WHERE
  • posts_search_orderby, ORDER BYजब आदेश खोज परिणामों को फ़िल्टर करने के लिए ।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.