<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های نریمان اسماعیلی فرد</title>
        <link>https://virgool.io/feed/@n.esmaielyfard</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-17 09:38:13</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/14016/avatar/vOVuOp.png?height=120&amp;width=120</url>
            <title>نریمان اسماعیلی فرد</title>
            <link>https://virgool.io/@n.esmaielyfard</link>
        </image>

                    <item>
                <title>آموزش Elasticsearch - بخش سوم: ذخیره اسناد</title>
                <link>https://virgool.io/@n.esmaielyfard/elasticsearch-bhobdqojidq8</link>
                <description>بعد از اینکه موفق شدیم Elasticsearch رو نصب کنیم، نیاز داریم تا اسنادمون رو در این موتور جست‌وجو ذخیره کنیم. Elasticsearch از ساختاری به اسم شاخص معکوس (Inverted index) برای ذخیره‎سازی اسناد استفاده میکنه تا جست‌وجو با سرعت قابل قبولی انجام بگیره. فرض کنید از بین هزاران سند می‌خوایم سندهایی که حاوی عبارتی خاص هستند رو پیدا کنیم. ساده ترین کار اینه که تمام اسناد رو یکی یکی بازیابی کنیم و کلمه به کلمه اش رو بررسی کنیم و ببینیم آیا عبارت مورد نظر ما در این سند وجود داره یا نه؟ مسلما این راه بسیار زمانبر و کند خواهد بود. اینجاست که شاخص معکوس به کمک ما میاد. در این روش هنگام ذخیره‎سازی هر سند، اون رو به کلمات تشکیل‌دهنده‌اش تجزیه می‌کنیم. سپس یک لیست مرتب شده از کلمات یکتای موجود در اسناد ایجاد می‌کنیم به صورتیکه هر کلمه به اسنادی که در اون رخ داده اشاره می‌کنه. فرض کنید اسناد زیر رو داریم: سند 1: روباه قهوه‌ای چابک از روی سگ تنبل پرید. سند 2: روباه‌های قهوه‌ای چابک در تابستان از روی سگ‌های تنبل پریدند. اگر بخوایم اسناد مورد اشاره رو با ساختار شاخص معکوس ذخیره‌سازی کنیم به جدول زیر می‌رسیم:  حالا برای جست‌وجوی یک عبارت مثل &quot;روباه&quot; کافیه سراغ سطر مورد نظر بریم و به سرعت اسنادی که این عبارت رو شامل میشن بازیابی میکنیم. البته ساختار شاخص معکوسی که Elasticsearch از اون استفاده میکنه بسیار پیچیده تره و من فقط خواستم یک دید کلی بهتون بدم.برای ذخیره اسناد در Elasticsearch نیاز دارید تا یک درخواست از نوع PUT به URL ای با الگوی زیر ارسال کنید: /name/type/idبه جای name نام ایندکس مورد نظر، به جای type نوع سند و به جای id هم مقدار شناسه سند رو قرار میدیم. لازم به ذکره که id در URL اختیاریه و اگر فقط نام ایندکس و نوع سند رو مشخص کنید Elasticsearch خودش یک مقدار یکتا رو برای id به صورت خودکار تولید میکنه. به طور مثال اگر من بخوام یک پست از ویرگول رو در  Elasticsearch ذخیره کنم، URL من به این شکل خواهد بود: /virgool/post/1حالا کافیه در body درخواست، با فرمت JSON فیلدها و مقادیر سند مورد نظر خودم رو مشخص کنم. مثلا:{
	&quot;id&quot;:1,
	&quot;title&quot;:&quot;پست ویرگول&quot;,
	&quot;body&quot;:&quot;این یک پست جدید در ویرگول است.&quot; ,
	&quot;likes&quot;:5,
	&quot;comments&quot;:2
}حالا اگه این درخواست رو در Postman برای Elasticsearch ارسال کنیم و جواب مانند تصویر زیر باشه به این معنیه که موفق شدیم اولین سند خودمون رو با موفقیت ذخیره کنیم :)</description>
                <category>نریمان اسماعیلی فرد</category>
                <author>نریمان اسماعیلی فرد</author>
                <pubDate>Fri, 19 Oct 2018 18:11:40 +0330</pubDate>
            </item>
                    <item>
                <title>آموزش Elasticsearch - بخش دوم: نصب و راه‌اندازی</title>
                <link>https://virgool.io/@n.esmaielyfard/elasticsearch-z6esc36w336w</link>
                <description>موتور جست‌وجوی Elasticsearch به کمک زبان برنامه‌نویسی جاوا توسعه داده میشه و برای نصب اون ابتدا نیاز داریم تا جاوا روی سیستم نصب باشه. میتونید یک نسخه از جاوا رو از اینجا دانلود کنید، اگر از سایت دیگری دانلودش می‌کنید حواستون باشه که ورژنش نباید کمتر از ۸ باشه. برای اطمینان از درست نصب شدن جاوا بد نیست در خط فرمان دستور زیر رو تایپ کنید و ورژن جاوا رو چک کنید:java -versionبعد از نصب جاوا می‌تونیم خود موتور جست‌وجوی Elasticsearch رو نصب کنیم. برای دانلود آخرین نسخه Elasticsearch باید به این آدرس در سایت رسمیش برید. برای هر نسخه از Elasticsearch می‌تونید اون رو در قالب فشرده TAR و ZIP، پکیج‌های DEB و RPM و یا MSI بر حسب نیازتون دانلود کنید. من در اینجا با فرض این که شما فایل ZIP رو دریافت کردید ادامه میدم. پس از دانلود، فایل رو از حالت فشرده خارج کنید. ساختار کلی موتور جست‌وجوی دریافتی شما به صورت زیر هست: برای اجرای Elasticsearch باید به پوشه bin برید و فایل elasticsearch.bat رو اجرا کنید. اگر همه چیز درست پیش بره با همچین صفحه‌ای روبرو هستید: همونطور که قبلا هم اشاره کردم Elasticsearch یک وب سرویس هست و ارتباط با اون از طریق متدهای پروتکل HTTP انجام میشه. ابزارهایی مثل cURL و Postman برای برقراری ارتباط با Elasticsearch مناسب هستن و همچنین کلاینت‌های مختلفی برای انواع زبان‌های برنامه‌نویسی وجود دارن. من فعلا از ابزار Postman استفاده می‌کنم و به کمک اون آموزش رو جلو می‌برم. وب سرویس Elasticsearch در localhost با پورت 9200 قابل دسترسیه و اگر یک درخواست GET به آدرس  localhost:9200 بفرستید باید پیام زیر رو دریافت کنید:   {
    &quot;name&quot;: &quot;LVqjSO2&quot;,
    &quot;cluster_name&quot;: &quot;elasticsearch&quot;,
    &quot;cluster_uuid&quot;: &quot;iJCMrY8kQBCG8NYXAeFdRw&quot;,
    &quot;version&quot;: {
    &quot;number&quot;: &quot;6.2.4&quot;,
    &quot;build_hash&quot;: &quot;ccec39f&quot;,
    &quot;build_date&quot;: &quot;2018-04-12T20:37:28.497551Z&quot;,
    &quot;build_snapshot&quot;: false,
    &quot;lucene_version&quot;: &quot;7.2.1&quot;,
    &quot;minimum_wire_compatibility_version&quot;: &quot;5.6.0&quot;,
    &quot;minimum_index_compatibility_version&quot;: &quot;5.0.0&quot;
    },
    &quot;tagline&quot;: &quot;You Know, for Search&quot;
    }در این بخش یاد گرفتیم که چطوری Elasticsearch رو راه‌اندازی کنیم و در بخش‌های آینده به بررسی ویژگی‌هاش می‌پردازیم. در ضمن اگر نظری در رابطه با بهبود آموزش‌ها دارید خوشحال میشم بهم بگید. </description>
                <category>نریمان اسماعیلی فرد</category>
                <author>نریمان اسماعیلی فرد</author>
                <pubDate>Fri, 10 Aug 2018 20:46:27 +0430</pubDate>
            </item>
                    <item>
                <title>آموزش Elasticsearch  - بخش اول: برای جست‌وجو!</title>
                <link>https://virgool.io/@n.esmaielyfard/elasticsearch-u0euhhcqvxd5</link>
                <description>سال‌ها پیش یک برنامه‌نویس جوان بیکار به نام Shay Banon که به تازگی ازدواج کرده بود، به همراه همسرش به لندن سفر می‌کنه، شهری که همسرش در اونجا مشغول یادگیری آشپزی بود. در حالیکه دنبال کاری برای خودش می‌گشت، شروع کرد به ور رفتن با یکی از نسخه‌های اولیه Lucene تا بتونه به کمکش یک موتور جستجوی دستورات پخت غذا برای همسرش بسازه. اینجا بود که متوجه شد کار کردن با Lucene چه قدر سخته و شروع کرد به نوشتن یک لایه انتزاعی که به برنامه‌نویسان جاوا این امکان رو می‌داد جست‌وجو رو به برنامه‌هاشون اضافه کنن. این پروژه با نام &quot;قطب نما&quot; به صورت متن‌باز منتشر شد. مدتی بعد آقای Banon شغلی رو قبول کرد که با سیستم‌های توزیع‌شده سر و کار داشت و باعث شد فکر ایجاد یک موتور جست‌وجوی توزیع‌شده با کارآیی بالا به ذهنش برسه. و اینجوری شد که با بازنویسی کدهایی که قبلا در قطب نما نوشته بود یک سرور مستقل به نام Elasticsearch رو ایجاد کرد. از اون موقع به بعد Elasticsearch یکی از پرطرفدارترین پروژه‌ها روی گیت‌هاب شد، صدها نفر برای مشارکت در توسعه این موتور جست‌وجو داوطلب شدند و یک شرکت برای پشتیبانی تجاریش شکل گرفت. آقای Shay Banon، خالق موتور جست‌وجوی Elasticsearchبه طور خلاصه Elasticsearch یک موتور جست‌وجوی متن باز هست که به زبان جاوا نوشته شده و برای جست‌وجو از کتابخانه معروف Lucene استفاده میکنه، با این تفاوت که تلاش میکنه پیچیدگی‌های Lucene رو پشت یک RESTful API ساده و منسجم پنهان کنه. البته امکانات Elasticsearch به کتابخانه Lucene محدود نمیشن و فراتر از یک موتور جست‌وجوی مبتنی بر متن هست. در این مجموعه آموزش تلاش می‌کنم تا در هر بخش به یکی از ویژگی‌های این موتور جست‌وجوی قدرتمند بپردازم. در این نوشته خواستم یک دید کلی بهتون بدم که Elasticsearch چیه و در بخش بعدی سعی میکنم به نصب و راه اندازیش بپردازم. </description>
                <category>نریمان اسماعیلی فرد</category>
                <author>نریمان اسماعیلی فرد</author>
                <pubDate>Fri, 03 Aug 2018 01:44:48 +0430</pubDate>
            </item>
            </channel>
</rss>