में एन्क्रिप्टेड तत्वों पर वाइल्डकार्ड खोज कैसे कर सकता हूं, मैं अपने कुछ मॉडल फ़ील्ड को एन्क्रिप्ट करने के लिए attr_encrypted का उपयोग कर रहा हूं, और मैं पूरी टेक्स्ट खोज के लिए टायर का उपयोग Elasticsearch के साथ करता हूं। मैं सिर्फ एक साधारण खोज फ़ॉर्म का उपयोग करता हूं।मैं डेटाबेस
class Student < ActiveRecord::Base
include Tire::Model::Search
include Tire::Model::Callbacks
attr_accessible :name, :surname
attr_encrypted :name, :key => 'f98gd9regre9gr9gre9gerh'
attr_encrypted :surname, :key => 'f98gd9regre9gr9gre9gerh'
def self.search(params)
tire.search(load: true) do
query { string Student.encrypt_name(params[:search]) } if params[:search].present?
end
end
end
तो, उदाहरण के लिए, अगर मैं डेटाबेस में नाम "जॉन" है, जब मैं "जॉन" के लिए खोज क्वेरी एन्क्रिप्टेड है (Student.encrypt_name (पैरामीटर [: यहाँ अपने मॉडल का हिस्सा है : खोज])) डेटाबेस से पूछताछ से पहले, और परिणाम वापस आ गया है। Elasticsearch वाइल्डकार्ड खोज की अनुमति देता है, उदाहरण के लिए यदि मैं "जोह *" खोजता हूं, तो मिलान किए गए परिणाम को वापस करना चाहिए, लेकिन एन्क्रिप्टेड कीवर्ड "जोह" एन्क्रिप्टेड "जॉन" से अलग है, और डीबी कोई परिणाम नहीं देता है। इस पर किसी भी समाधान की सराहना की जाएगी।
सादर, रादोस्लाव
क्या आपको इसके लिए कोई समाधान मिला? मेरी भी यही समस्या है –