E-commerce Search Engine তৈরি করা

Real-world Solr Projects - অ্যাপাচি  সলর (Apache Solr) - Big Data and Analytics

389

অ্যাপাচি সলর (Apache Solr) হল একটি শক্তিশালী সার্চ প্ল্যাটফর্ম যা ডেটা ইনডেক্সিং, সার্চিং এবং বিশ্লেষণ করার জন্য ব্যবহৃত হয়। E-commerce সাইটগুলোর জন্য সলর অত্যন্ত কার্যকরী, কারণ এটি দ্রুত এবং প্রাসঙ্গিক সার্চ রেজাল্ট প্রদান করে। সলর ব্যবহার করে আপনি একটি scalable এবং reliable search engine তৈরি করতে পারবেন যা পণ্য অনুসন্ধান, ফিল্টারিং, র‍্যাংকিং এবং ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে সাহায্য করবে।

এই টিউটোরিয়ালে, আমরা E-commerce Search Engine তৈরি করার প্রক্রিয়া, সলরের ফিচার ব্যবহার করে কীভাবে কার্যকরী সার্চ ইঞ্জিন তৈরি করা যায় তা বিস্তারিতভাবে আলোচনা করব।


E-commerce Search Engine তৈরি করার জন্য সলরের প্রয়োজনীয় কনফিগারেশন

E-commerce সাইটের জন্য সার্চ ইঞ্জিন তৈরি করার জন্য প্রথমে সলরের schema.xml, solrconfig.xml, এবং data import handler ফাইলগুলি কনফিগার করতে হবে। এই কনফিগারেশন ফাইলগুলো সলরের ডেটা ইনডেক্সিং, সার্চ কুয়েরি এবং ফিল্টারিং এর জন্য অপরিহার্য।


Step 1: Solr Core Configuration

প্রথমে সলরে একটি কোর তৈরি করতে হবে, যা ই-কমার্স সাইটের সমস্ত ডেটা (পণ্য, ক্যাটেগরি, মূল্য ইত্যাদি) সংরক্ষণ করবে। সলর কোরের মাধ্যমে সলর ইনডেক্স তৈরি এবং সার্চ কুয়েরি পরিচালনা করা যায়।

Create Core:

curl "http://localhost:8983/solr/admin/cores?action=CREATE&name=ecommerce_core&instanceDir=ecommerce"

এখানে, ecommerce_core হল কোরের নাম এবং instanceDir হল কোর ফাইলের অবস্থান।


Step 2: Schema Configuration

schema.xml ফাইলে সলরের ইনডেক্স ফিল্ডগুলি কনফিগার করা হয়। ই-কমার্স সাইটের জন্য সাধারণত নিম্নলিখিত ফিল্ডগুলো প্রয়োজন:

  1. id: পণ্যের ইউনিক আইডি।
  2. name: পণ্যের নাম।
  3. category: পণ্যের ক্যাটেগরি।
  4. price: পণ্যের মূল্য।
  5. brand: পণ্যের ব্র্যান্ড।
  6. description: পণ্যের বিবরণ।
  7. rating: পণ্যের রেটিং।

Example Schema Configuration:

<fieldType name="text_general" class="solr.TextField">
    <analyzer type="index">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
        <filter class="solr.SnowballPorterFilterFactory" language="English"/>
    </analyzer>
    <analyzer type="query">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
        <filter class="solr.SnowballPorterFilterFactory" language="English"/>
    </analyzer>
</fieldType>

<field name="id" type="string" indexed="true" stored="true"/>
<field name="name" type="text_general" indexed="true" stored="true"/>
<field name="category" type="text_general" indexed="true" stored="true"/>
<field name="price" type="tfloat" indexed="true" stored="true"/>
<field name="brand" type="text_general" indexed="true" stored="true"/>
<field name="description" type="text_general" indexed="true" stored="true"/>
<field name="rating" type="tfloat" indexed="true" stored="true"/>

এখানে:

  • text_general: সাধারণ টেক্সট ইনডেক্স করার জন্য ব্যবহৃত হয়।
  • tfloat: মূল্য এবং রেটিং ফিল্ডের জন্য ফ্লোট টাইপ ব্যবহৃত হয়।

Step 3: Data Import

ই-কমার্স সাইটের জন্য পণ্য ডেটা ইনডেক্স করতে Data Import Handler (DIH) ব্যবহৃত হয়। ডেটা সোর্সের ধরন অনুযায়ী (যেমন XML, CSV, JDBC) ইনডেক্সিং করতে পারেন।

Data Import Configuration:

<dataConfig>
    <dataSource type="JdbcDataSource" driver="com.mysql.cj.jdbc.Driver" url="jdbc:mysql://localhost:3306/ecommerce_db" user="root" password="password"/>
    <document>
        <entity processor="XPathEntityProcessor" url="http://localhost:8983/solr/ecommerce_core">
            <field column="id" xpath="/response/result/doc/str[@name='id']"/>
            <field column="name" xpath="/response/result/doc/str[@name='name']"/>
            <field column="category" xpath="/response/result/doc/str[@name='category']"/>
            <field column="price" xpath="/response/result/doc/str[@name='price']"/>
            <field column="brand" xpath="/response/result/doc/str[@name='brand']"/>
            <field column="description" xpath="/response/result/doc/str[@name='description']"/>
            <field column="rating" xpath="/response/result/doc/str[@name='rating']"/>
        </entity>
    </document>
</dataConfig>

এখানে, JdbcDataSource ব্যবহার করে আপনি MySQL ডাটাবেস থেকে ডেটা সোর্স তৈরি করেছেন। এরপর ডেটা সোর্সের সাহায্যে সলরে ডেটা ইনডেক্স করা হয়।


Step 4: Configuring the Solr Query Handler

এটি সলরে search query handler কনফিগার করার জন্য ব্যবহৃত হয়, যাতে ই-কমার্স সার্চের জন্য বিভিন্ন কুয়েরি এবং ফিল্টারিং অপশন কনফিগার করা যায়। সাধারণত faceting, filter queries (fq) এবং sorting ব্যবহার করা হয়।

Example of Solr Query Handler Configuration:

<requestHandler name="/select" class="solr.SearchHandler">
    <lst name="defaults">
        <str name="q">*:*</str>
        <str name="fl">id,name,category,price,brand,rating</str>
        <str name="rows">10</str>
        <str name="start">0</str>
        <str name="fq">category:[* TO *]</str>
        <str name="facet">true</str>
        <str name="facet.field">category</str>
    </lst>
</requestHandler>

এখানে:

  • q=:: এটি সমস্ত পণ্য অনুসন্ধান করার জন্য ব্যবহৃত হয়।
  • fq: ফিল্টার কুয়েরি (যেমন ক্যাটেগরি অনুসারে পণ্য ফিল্টার করা)।
  • facet: ফেসেটিং সক্রিয় করা, যাতে ক্যাটেগরি অনুসারে গ্রুপ করা যায়।

Step 5: Real-time Search Features

ই-কমার্স সাইটে রিয়েল-টাইম সার্চ ব্যবহারের জন্য সলর real-time indexing, facet filtering, এবং sorting ফিচার ব্যবহার করা হয়। আপনি যদি সলরের সাথে faceting এবং filtering কনফিগার করেন, তাহলে ব্যবহারকারীরা সহজেই তাদের পছন্দের পণ্য (ব্র্যান্ড, মূল্য, রেটিং ইত্যাদি) অনুসারে ফিল্টার করতে সক্ষম হবে।

Example: Faceted Search Query

http://localhost:8983/solr/ecommerce_core/select?q=name:phone&facet=true&facet.field=category&facet.field=brand&rows=10

এখানে:

  • facet.field=category: পণ্যের ক্যাটেগরি অনুসারে ফেসেটিং করা হচ্ছে।
  • facet.field=brand: ব্র্যান্ড অনুসারে ফেসেটিং করা হচ্ছে।

Step 6: E-commerce Search Engine Advanced Features

  1. Ranking Algorithms: সলর Learning to Rank (LTR) মডেল ব্যবহার করে সার্চ রেজাল্টের র‍্যাংকিং কাস্টমাইজ করা যেতে পারে। মেশিন লার্নিং ব্যবহার করে পণ্যগুলির র‍্যাংকিং আরও প্রাসঙ্গিক করা সম্ভব।
  2. Spell Checking and Suggestions: সলরের spellcheck এবং suggest ফিচার ব্যবহার করে ব্যবহারকারীদের টাইপিং এর ভুল থেকে সংশোধন বা পণ্য সুপারিশ প্রদান করা যেতে পারে।
  3. Autocomplete: সলরে auto-suggest বা autocomplete ফিচার ব্যবহার করে ব্যবহারকারীকে টাইপিং করা মাত্র পণ্য সুপারিশ করা যায়।
  4. Personalization: সলরের সাথে machine learning ব্যবহার করে সার্চ রেজাল্ট ব্যবহারকারীর পছন্দ অনুযায়ী কাস্টমাইজ করা যেতে পারে।

Conclusion

E-commerce Search Engine তৈরি করতে Apache Solr একটি অত্যন্ত শক্তিশালী এবং স্কেলেবল সলিউশন। সলরের real-time indexing, faceting, filtering, ranking algorithms, এবং spell checking ফিচারগুলো ব্যবহার করে আপনি একটি উন্নত সার্চ সিস্টেম তৈরি করতে পারেন যা পণ্য অনুসন্ধান এবং ব্যবহারকারীর অভিজ্ঞতা উন্নত করে। সলরের Data Import Handler (DIH), faceting, এবং filtering ব্যবহারের মাধ্যমে ই-কমার্স সাইটে দ্রুত এবং প্রাসঙ্গিক সার্চ রেজাল্ট পাওয়া সম্ভব।

Content added By
Promotion

Are you sure to start over?

Loading...