این بخش نحوه مدیریت شاخص های مورد استفاده برای عملکرد جستجو را توضیح می دهد.
برای اهداف عملکرد پرس و جو، درک نحوه استفاده از ایندکس ها توسط برنامه ریز Cypher نیز مهم است. برای مثال ها و بحث های عمیق در مورد اینکه چگونه طرح های پرس و جو از سناریوهای مختلف نمایه و پرس و جو نتیجه می شوند، به تنظیم پرس و جو مراجعه کنید. به طور خاص به استفاده از ایندکس ها برای مثال هایی از اینکه چگونه سناریوهای شاخص مختلف منجر به طرح های پرس و جوی مختلف می شوند، مراجعه کنید.
برای اطلاعات در مورد پیکربندی و محدودیت های فهرست، به راهنمای عملیات ← پیکربندی فهرست مراجعه کنید.
شاخص ها (انواع و محدودیت ها)
فهرست پایگاه داده یک کپی اضافی از برخی از داده های موجود در پایگاه داده به منظور کارآمدتر کردن جستجوی داده های مرتبط است. این به قیمت فضای ذخیره سازی اضافی و نوشتن کندتر است، بنابراین تصمیم گیری در مورد اینکه چه چیزی فهرست بندی شود و چه چیزی ایندکس نشود، یک کار مهم و اغلب بی اهمیت است.
هنگامی که یک نمایه ایجاد شد، توسط DBMS مدیریت و به روز می شود. Neo4j پس از ایجاد و آنلاین شدن ایندکس به طور خودکار آن را دریافت کرده و شروع به استفاده از آن می کند.
چندین نوع شاخص موجود است:
- شاخص محدوده
- فهرست جستجو
- نمایه متن
- شاخص نقطه ای
- نمایه تمام متن
برای اطلاعات بیشتر در مورد نمایه های متن کامل به فهرست جستجوی کامل متن مراجعه کنید. نمایه های جستجو شامل گره هایی با یک یا چند برچسب یا نوع رابطه، بدون توجه به هیچ خاصیتی هستند.
Cypher ایجاد نمایه های محدوده را در یک یا چند ویژگی برای همه گره ها یا روابط با یک برچسب یا نوع رابطه مشخص می کند:
- شاخصی که بر روی یک ویژگی واحد برای هر برچسب یا نوع رابطه معینی ایجاد می شود، شاخص تک ویژگی نامیده می شود.
- شاخص ایجاد شده بر روی بیش از یک ویژگی برای هر برچسب یا نوع رابطه معین، شاخص ترکیبی نامیده می شود.
تفاوت ها در الگوهای استفاده بین شاخص های ترکیبی و تک ویژگی در محدودیت های شاخص ترکیبی توضیح داده شده است.
بعلاوه، نمایه های متن و نقطه نوعی نمایه های تک خاصیت هستند، با این محدودیت که فقط ویژگی ها را به ترتیب با مقادیر رشته و نقطه تشخیص می دهند. گره ها یا روابط با برچسب نمایه شده یا نوع رابطه که در آن خاصیت نمایه شده از نوع ارزش دیگری است در ایندکس گنجانده نمی شود.
موارد زیر برای ایندکس ها صادق است:
- بهترین روش این است که هنگام ایجاد ایندکس یک نام بگذارید. اگر نمایه به طور صریح نامگذاری نشده باشد، یک نام تولید خودکار دریافت می کند.
- نام ایندکس باید در بین شاخص ها و محدودیت ها منحصر به فرد باشد.
- ایجاد شاخص به طور پیش فرض نیست و در صورت تلاش برای ایجاد همان شاخص دو بار ، خطایی پرتاب می شود. استفاده از کلمه کلیدی اگر وجود نداشته باشد باعث می شود فرمان idempotent باشد و در صورت تلاش برای ایجاد همان شاخص دو بار ، هیچ خطایی پرتاب نمی شود.
برای مرور مختصری از نحو ، برای همه دستورات فهرست ، به نحو مراجعه کنید.
ایجاد فهرست
ایجاد یک شاخص با ایجاد انجام می شود. فهرست مطالب . فرماناگر هیچ نوع شاخصی در Create Command مشخص نشده باشد ، یک شاخص دامنه ایجاد می شود.
بهترین روش این است که هنگام ایجاد ایندکس یک نام بگذارید. اگر نمایه به طور صریح نامگذاری نشده باشد، یک نام تولید خودکار دریافت می کند.
نام ایندکس باید در بین شاخص ها و محدودیت ها منحصر به فرد باشد.
فرمان ایجاد index به صورت اختیاری idempotent است. این بدان معناست که اگر تلاش برای ایجاد همان شاخص دو بار انجام شود ، رفتار پیش فرض آن خطایی است. اگر در صورت وجود وجود نداشته باشد ، هیچ خطایی پرتاب نمی شود و هیچ اتفاقی نمی افتد که یک شاخص با همان نام یا یک طرحواره و نوع شاخص از قبل وجود داشته باشد. در صورت وجود محدودیت های متناقض ، مانند محدودیت هایی با همین نام یا طرح و نوع شاخص پشتیبان ، ممکن است هنوز خطایی ایجاد کند.
شاخص جدید بلافاصله در دسترس نیست ، اما در پس زمینه ایجاد می شود.
ایجاد یک فهرست دامنه
ایجاد یک شاخص دامنه می تواند با دستور Create Index انجام شود. توجه داشته باشید که نام فهرست باید بی نظیر باشد.
ایجاد [دامنه] فهرست [index_name] [اگر وجود نداشته باشد] برای (n: labelname) در (n. propertyname_1 [، n. propertyname_2 ،. n. propertyname_n])
ایجاد [دامنه] فهرست [index_name] [اگر وجود نداشته باشد] برای ()-"[" r: type_name "]"-() on (r. propertyname_1 [، r. propertyname_2 ،. r. propertyname_n])
جزئیات بیشتر در مورد توضیحات نحو را می توان در اینجا یافت.
شاخص های دامنه فقط یک ارائه دهنده شاخص در دسترس ، دامنه 1. 0 و بدون پیکربندی شاخص پشتیبانی نشده است.
مثال ها
- برای گره ها یک شاخص دامنه تکنولوژی ایجاد کنید
- برای روابط یک شاخص دامنه تک مالکیت ایجاد کنید
- برای گره ها یک شاخص دامنه کامپوزیت ایجاد کنید
- برای روابط یک شاخص دامنه کامپوزیت ایجاد کنید
- فقط در صورتی که از قبل وجود نداشته باشد ، یک شاخص دامنه ایجاد کنید
برای گره ها یک شاخص دامنه تکنولوژی ایجاد کنید
در بیانیه زیر یک شاخص دامنه نامگذاری شده در کلیه گره های دارای برچسب شخص و دارای ویژگی نام خانوادگی ایجاد می شود.
ایجاد شاخص دامنه گره در یک ویژگی واحد
ایجاد index node_range_index_name برای (n: person) در (n. suame)
برای روابط یک شاخص دامنه تک مالکیت ایجاد کنید
در بیانیه زیر یک شاخص دامنه نامگذاری شده در کلیه روابط با نوع روابط می داند و دارایی از آن زمان است.
ایجاد شاخص دامنه رابطه بر روی یک ویژگی واحد
ایجاد index rel_range_index_name for ()-[r: know]-() on (r. since)
برای گره ها یک شاخص دامنه کامپوزیت ایجاد کنید
یک شاخص دامنه در چندین ویژگی نیز به عنوان شاخص کامپوزیت نامیده می شود. برای شاخص های دامنه گره ، فقط گره هایی با برچسب مشخص شده و حاوی تمام خصوصیات مشخص شده به شاخص اضافه می شوند.
در بیانیه زیر یک شاخص دامنه کامپوزیت نامگذاری شده در کلیه گره هایی که دارای شخص هستند و دارای سن و دارایی کشور هستند ، ایجاد می کند.
ایجاد یک شاخص دامنه گره کامپوزیت بر روی چندین ویژگی
ایجاد شاخص Composite_Range_Node_index_name برای (n: person) در (n. age ، n. country)
برای روابط یک شاخص دامنه کامپوزیت ایجاد کنید
یک شاخص دامنه در چندین ویژگی نیز به عنوان شاخص کامپوزیت نامیده می شود. برای شاخص های دامنه روابط ، فقط روابط با نوع مشخص شده و حاوی تمام خصوصیات مشخص شده به شاخص اضافه می شود.
در بیانیه زیر یک شاخص دامنه کامپوزیت نامگذاری شده در کلیه روابط دارای برچسب خریداری شده و دارای دارایی تاریخ و مبلغ ایجاد می شود.
ایجاد یک شاخص دامنه روابط کامپوزیت بر روی چندین ویژگی
ایجاد شاخص Composite_Range_REL_INDEX_NAME برای ()-[R: خریداری شده]-() ON (R. Date ، R. Amount)
فقط در صورتی که از قبل وجود نداشته باشد ، یک شاخص دامنه ایجاد کنید
اگر مشخص نیست که آیا یک شاخص وجود دارد یا خیر ، اگر وجود نداشته باشد ، برای اطمینان از این کار اضافه کنید.
ایجاد یک شاخص دامنه اگر وجود نداشته باشد
ایجاد Node_range_index_name اگر برای (n: person) در (n. suame) وجود ندارد
اگر در حال حاضر یک شاخص با همان طرح و نوع ، نام مشابه یا هر دو وجود داشته باشد ، این شاخص ایجاد نمی شود.
ایجاد فهرست متن
ایجاد یک فهرست متن را می توان با دستور Create Text Index انجام داد. توجه داشته باشید که نام فهرست باید بی نظیر باشد.
ایجاد فهرست متن [index_name] [اگر وجود نداشته باشد] برای (n: labelname) در (n. propertyname) [گزینه های ""]
ایجاد فهرست متن [index_name] [اگر وجود نداشته باشد] برای ()-"[" r: type_name "]"-() on (r. propertyname) [گزینه ها ""]
جزئیات بیشتر در مورد توضیحات نحو را می توان در اینجا یافت.
شاخص های متن دارای دو ارائه دهنده شاخص در دسترس ، مت ن-2. 0 (پیش فرض) و مت ن-1. 0 (مستهلک) و بدون پیکربندی فهرست پشتیبانی نیستند.
شاخص های متن فقط مقادیر رشته را تشخیص می دهند و از چندین ویژگی پشتیبانی نمی کنند.
مثال ها
- یک فهرست متن گره ایجاد کنید
- یک فهرست متن رابطه ایجاد کنید
- فقط در صورتی که از قبل وجود نداشته باشد ، یک فهرست متن ایجاد کنید
- یک فهرست متنی ایجاد کنید که ارائه دهنده فهرست را مشخص کند
یک فهرست متن گره ایجاد کنید
عبارت زیر یک نمایه متنی با نام در تمام گره های برچسب گذاری شده با Person و دارای ویژگی رشته مستعار ایجاد می کند.
ایجاد یک نمایه متن گره در یک ویژگی واحد
CREATE TEXT INDEX node_text_index_nickname FOR (n:Person) روشن (n. nickname)
یک فهرست متن رابطه ایجاد کنید
عبارت زیر یک نمایه متنی با نام برای همه روابط با نوع رابطه KNOWS و علاقه ویژگی رشته ایجاد می کند.
ایجاد یک نمایه متن رابطه در یک ویژگی واحد
CREATE TEXT INDEX rel_text_index_name برای ()-[r:KNOWS]-() ON (r. interest)
فقط در صورتی که از قبل وجود نداشته باشد ، یک فهرست متن ایجاد کنید
اگر مشخص نیست که آیا یک شاخص وجود دارد یا خیر ، اگر وجود نداشته باشد ، برای اطمینان از این کار اضافه کنید.
دستور زیر سعی خواهد کرد یک فهرست متنی با نام در تمام گره های برچسب گذاری شده با Person و دارای ویژگی رشته مستعار ایجاد کند.
ایجاد نمایه متن با IF NOT EXISTS
CREATE TEXT INDEX node_index_name IF NOT EXISTS FOR (n:Person) روشن (n. nickname)
توجه داشته باشید که اگر نمایه ای با طرح و نوع یکسان، نام یکسان یا هر دو از قبل وجود داشته باشد، ایندکس ایجاد نخواهد شد.
یک فهرست متنی ایجاد کنید که ارائه دهنده فهرست را مشخص کند
برای ایجاد یک نمایه متنی با یک ارائه دهنده شاخص خاص، از عبارت OPTIONS استفاده می شود. مقادیر معتبر برای ارائه دهنده فهرست عبارتند از text-2. 0 و text-1. 0 (منسوخ شده). ارائه دهنده پیش فرض text-2. 0 است.
ایجاد نمایه متنی با ارائه دهنده فهرست
CREATE TEXT INDEX text_index_with_indexprovider FOR ()-[r:TYPE]-() ON (r. prop1) OPTIONs
هیچ پیکربندی شاخص پشتیبانی برای نمایه های متنی وجود ندارد.
ایجاد یک شاخص نقطه
ایجاد یک شاخص نقطه با دستور CREATE POINT INDEX قابل انجام است. توجه داشته باشید که نام ایندکس باید منحصر به فرد باشد.
CREATE POINT INDEX [index_name] [اگر وجود ندارد] برای (n:LabelName) روشن (n. propertyName) [OPTIONS ""]
CREATE POINT INDEX [index_name] [اگر وجود ندارد] برای ()-"["r:TYPE_NAME"]"-() روشن (r. propertyName) [OPTIONS ""]
جزئیات بیشتر در مورد توضیحات نحو را می توان در اینجا یافت.
نمایه های نقطه ای از پیکربندی فهرست پشتیبانی می کنند، آخرین نمونه ها را ببینید، اما تنها یک ارائه دهنده فهرست موجود است، point-1. 0.
توجه داشته باشید که شاخص های نقطه ای فقط مقادیر نقطه را تشخیص می دهند و از چندین ویژگی پشتیبانی نمی کنند.
مثال ها
- یک نمایه نقطه گره ایجاد کنید
- یک شاخص نقطه رابطه ایجاد کنید
- یک شاخص نقطه ای را فقط در صورتی ایجاد کنید که از قبل وجود نداشته باشد
- یک نمایه نقطه ای ایجاد کنید که پیکربندی ایندکس را مشخص می کند
یک نمایه نقطه گره ایجاد کنید
عبارت زیر یک نمایه نقطه ای با نام در تمام گره هایی که با Person برچسب گذاری شده اند و دارای ویژگی نقطه فرعی هستند ایجاد می کند.
ایجاد یک فهرست نقطه گره در یک ویژگی واحد
Node_Index_Name را برای (n: n. sublocation) ایجاد کنید.
یک شاخص نقطه رابطه ایجاد کنید
در بیانیه زیر یک شاخص نقطه نامگذاری شده در کلیه روابط با نوع روابط خیابان و تقاطع دارایی نقطه ایجاد می شود.
ایجاد شاخص نقطه رابطه بر روی یک ویژگی واحد
ایجاد شاخص نقطه rel_point_index_name for ()-[r: Street]-() on (r. intersection)
یک شاخص نقطه ای را فقط در صورتی ایجاد کنید که از قبل وجود نداشته باشد
اگر مشخص نیست که آیا یک شاخص وجود دارد یا خیر ، اگر وجود نداشته باشد ، برای اطمینان از این کار اضافه کنید.
ایجاد یک شاخص نقطه با اگر وجود نداشته باشد
در صورت عدم وجود (n: شخص) در (n. sublocation) Node_Point_Index را ایجاد کنید (n. sublocation)
توجه داشته باشید که اگر نمایه ای با طرح و نوع یکسان، نام یکسان یا هر دو از قبل وجود داشته باشد، ایندکس ایجاد نخواهد شد.
یک نمایه نقطه ای ایجاد کنید که پیکربندی ایندکس را مشخص می کند
برای ایجاد یک شاخص نقطه با پیکربندی شاخص خاص ، از بند گزینه ها استفاده می شود.
تنظیمات پیکربندی معتبر عبارتند از:
- Spatial. cartesian. min
- Spatial. cartesian. max
- فضایی. cartesian-3d. min
- فضایی. cartesian-3d. max
- Spatial. wgs-84. min
- Spatial. wgs-84. max
- spatial. wgs-84-3d. min
- fatial. wgs-84-3d. max
تنظیمات غیر مشخص مقادیر پیش فرض مربوطه را دارند.
بیانیه زیر یک شاخص نقطه ای ایجاد می کند که تنظیمات Spatial. cartesian. min و Spatial. Cartesian. Max را مشخص می کند.
ایجاد یک شاخص نقطه با پیکربندی فهرست
Point Index Point_Index_With_Config را برای (n: label) در (n. prop2) ایجاد کنید>
مشخص کردن پیکربندی فهرست را می توان با ارائه دهنده شاخص مشخص کرد. اگرچه فقط یک مقدار معتبر برای ارائه دهنده شاخص وجود دارد ، نقطه 1. 0 ، که مقدار پیش فرض است.
ایجاد یک شاخص جستجو توکن
ایجاد یک شاخص جستجو Token (برچسب گره یا شاخص جستجوی نوع رابطه) را می توان با دستور Create Lookup Index انجام داد. توجه داشته باشید که نام فهرست باید بی نظیر باشد.
ایجاد شاخص جستجو [index_name] [اگر وجود نداشته باشد] برای (n) در هر برچسب (n)
ایجاد شاخص جستجو [index_name] [اگر وجود نداشته باشد] برای ()-"[" r "]"-() در [هر] نوع (r)
جزئیات بیشتر در مورد توضیحات نحو را می توان در اینجا یافت.
شاخص های جستجو Token تنها یک ارائه دهنده شاخص در دسترس ، Token-Lookup-1. 0 و بدون پیکربندی شاخص پشتیبانی شده است.
مثال ها
- یک فهرست جستجوی برچسب گره ایجاد کنید
- شاخص جستجوی نوع رابطه ایجاد کنید
- یک شاخص جستجوی توکن را فقط در صورتی که از قبل وجود نداشته باشد ایجاد کنید
یک فهرست جستجوی برچسب گره ایجاد کنید
عبارت زیر یک شاخص جستجوی برچسب گره نامگذاری شده در همه گره ها با یک یا چند برچسب ایجاد می کند:
ایجاد یک فهرست جستجوی برچسب گره
Node_Label_Lookup_Index را برای (N) در هر برچسب (N) ایجاد کنید.
فقط یک شاخص جستجوی برچسب گره می تواند در یک زمان وجود داشته باشد.
شاخص جستجوی نوع رابطه ایجاد کنید
در بیانیه زیر یک شاخص جستجوی نوع رابطه نامگذاری شده در کلیه روابط با هر نوع رابطه ایجاد می شود.
ایجاد شاخص جستجوی نوع رابطه
ایجاد شاخص جستجو REL_TYPE_LOOKUP_INDEX برای ()-[r]-() در هر نوع (R)
فقط یک شاخص جستجوی نوع رابطه می تواند در یک زمان وجود داشته باشد.
یک شاخص جستجوی توکن را فقط در صورتی که از قبل وجود نداشته باشد ایجاد کنید
اگر مشخص نیست که آیا یک شاخص وجود دارد یا خیر ، اگر وجود نداشته باشد ، برای اطمینان از این کار اضافه کنید.
ایجاد یک شاخص جستجوی برچسب گره با اگر وجود نداشته باشد
در صورت عدم وجود (n) در هر برچسب (N) ، فهرست جستجو Node_Label_Lookup ایجاد کنید
اگر در حال حاضر یک شاخص با همان طرح و نوع ، نام مشابه یا هر دو وجود داشته باشد ، این شاخص ایجاد نمی شود.
ایجاد یک شاخص هنگامی که یک شاخص یا محدودیت متناقض وجود دارد
- عدم ایجاد یک فهرست موجود موجود
- عدم ایجاد یک فهرست با همان نام به عنوان یک فهرست موجود در حال حاضر
- عدم ایجاد یک شاخص هنگامی که یک محدودیت در حال حاضر وجود دارد
- عدم ایجاد یک فهرست با همان نام به عنوان یک محدودیت موجود در حال حاضر
عدم ایجاد یک فهرست موجود موجود
هنگامی که این فهرست از قبل وجود دارد ، یک فهرست در عنوان ویژگی را بر روی گره ها با برچسب کتاب ایجاد کنید.
ایجاد یک فهرست تکراری
ایجاد index booktitleindex برای (کتاب: کتاب) در (book. title)
در این حالت شاخص نمی تواند ایجاد شود زیرا از قبل وجود دارد.
پیغام خطا
در حال حاضر یک فهرست وجود دارد (: کتاب).
عدم ایجاد یک فهرست با همان نام به عنوان یک فهرست موجود در حال حاضر
هنگامی که یک فهرست با نام مشخص شده در حال حاضر وجود دارد ، یک فهرست نامگذاری شده را در شماره ویژگی OFPages در گره ها ایجاد کنید. نوع شاخص شاخص موجود مهم نیست.
ایجاد یک فهرست با یک نام تکراری
ایجاد فهرست indexonbooks برای (کتاب: کتاب) در (book. numberofpages)
در این حالت شاخص نمی تواند ایجاد شود زیرا در حال حاضر یک فهرست با نام مشخص وجود دارد.
پیغام خطا
در حال حاضر شاخصی به نام "indexonbooks" وجود دارد.
عدم ایجاد یک شاخص هنگامی که یک محدودیت در حال حاضر وجود دارد
هنگامی که یک محدودیت تحت حمایت شاخص در آن طرح وجود دارد ، یک شاخص در ویژگی ISBN را روی گره ها با برچسب کتاب ایجاد کنید. این فقط برای شاخص های دامنه مرتبط است.
ایجاد یک شاخص دامنه در همان طرح به عنوان محدودیت موجود با فهرست
ایجاد index bookisbnindex برای (کتاب: کتاب) در (book. isbn)
در این حالت ، این شاخص نمی تواند ایجاد شود زیرا یک محدودیت تحت حمایت شاخص در حال حاضر بر روی آن برچسب و ترکیب خاصیت وجود دارد.
پیغام خطا
یک محدودیت منحصر به فرد در (: کتاب) وجود دارد ، بنابراین یک شاخص در حال حاضر ایجاد شده است که با این مطابقت دارد.
عدم ایجاد یک فهرست با همان نام به عنوان یک محدودیت موجود در حال حاضر
هنگامی که محدودیتی با نام مشخص شده در حال حاضر وجود دارد ، یک فهرست نامگذاری شده را در شماره ویژگی OFPages در گره ها با برچسب کتاب ایجاد کنید.
ایجاد یک فهرست با همان نام به عنوان یک محدودیت موجود
ایجاد Index BookRecomendations for (کتاب: کتاب) در (book. Recomendations)
در این حالت شاخص نمی تواند ایجاد شود زیرا در حال حاضر محدودیتی با نام داده شده وجود دارد.
پیغام خطا
در حال حاضر محدودیتی به نام "BookRecomeDations" وجود دارد.
شاخص های نمایش
فهرست فهرست ها را می توان با شاخص های نمایش انجام داد.
نمایش [همه |FullText |جستجو |نقطه |دامنه |متن] فهرست [es] [عملکرد<* | field[, . ]>[سفارش توسط زمینه [،.]] [Skip n] [Limit n]] [که در آن بیان] [قسمت بازگشت [،.] [سفارش توسط زمینه [،.]] [SKIP N] [LIMIT N]]
جزئیات بیشتر در مورد توضیحات نحو را می توان در اینجا یافت.
این دستور یک جدول با ستون های زیر تولید می کند:
شناسه شاخص. خروجی پیش فرض
نام فهرست (صریحاً توسط کاربر تنظیم شده یا به طور خودکار اختصاص داده شده است). خروجی پیش فرض
وضعیت فعلی شاخص. خروجی پیش فرض
٪ از جمعیت شاخص. خروجی پیش فرض
indextype این شاخص (FullText ، Lookup ، Point ، Range یا Text). خروجی پیش فرض
نوع موجوداتی که این شاخص نشان می دهد (گره یا رابطه). خروجی پیش فرض
برچسب ها یا انواع رابطه این شاخص. خروجی پیش فرض
خصوصیات این شاخص. خروجی پیش فرض
ارائه دهنده فهرست برای این فهرست. خروجی پیش فرض
اگر شاخص با هیچ محدودیتی در ارتباط نباشد ، نام این شاخص با یا تهی همراه است. خروجی پیش فرض
گزینه های منتقل شده برای ایجاد فرمان.
توضیحات شکست یک فهرست ناموفق.
عبارت استفاده شده برای ایجاد شاخص.
ایندکس های Command Show فقط خروجی پیش فرض را برمی گرداند. برای خروجی کامل از دستور عملکرد اختیاری استفاده کنید. خروجی کامل: عملکرد شاخص ها را نشان می دهد *.
فهرست فهرست ها همچنین امکان می دهد بندهای عملکردی و بازدهی برای فیلتر کردن ردیف ها و ستون های برگشتی.
مثال ها
- لیست همه فهرست ها
- فهرست فهرست ها با فیلتر
لیست همه فهرست ها
برای لیست همه ایندکس ها با ستون های خروجی پیش فرض ، می توان از دستور Show Indexes استفاده کرد. در صورت نیاز به همه ستون ها ، از شاخص های نمایش * بازده * استفاده کنید.
نشان دادن همه فهرست ها
شاخص های نمایش
نتیجه < Pan> برای لیست همه ایندکس ها با ستون های خروجی پیش فرض ، می توان از دستور Show Indexes استفاده کرد. در صورت نیاز به همه ستون ها ، از شاخص های نمایش * بازده * استفاده کنید.
نشان دادن همه فهرست ها
شاخص های نمایش
فهرست فهرست ها با فیلتر
نشان دادن همه فهرست ها
شاخص های نمایش
نتیجه
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |شناسه |نام |حالت |PlateMpercent |نوع |EntityType |LABELSORTYPES |خواص |IndexProvider |OwningConstraint |+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |3 |"Composite_range_node_index_name" |"آنلاین" |100. 0 |"دامنه" |"گره" |["شخص"] |["سن" ، "کشور"] |"دامنه 1. 0" |تهی ||4 |"Composite_range_rel_index_name" |"آنلاین" |100. 0 |"دامنه" |"رابطه" |["خریداری شده"] |["تاریخ" ، "مقدار"] |"دامنه 1. 0" |تهی ||13 |"مثال_Index" |"آنلاین" |100. 0 |"دامنه" |"گره" |["کتاب"] |["عنوان"] |"دامنه 1. 0" |تهی ||14 |"indexonbooks" |"آنلاین" |100. 0 |"متن" |"گره" |["label1"] |["prop1"] |"مت ن-2. 0" |تهی ||11 |"node_label_lookup_index" |"آنلاین" |100. 0 |"جستجو" |"گره" |تهی |تهی |"Token-Lookup-1. 0" |تهی ||8 |"node_point_index_name" |"آنلاین" |100. 0 |"نقطه" |"گره" |["شخص"] |["Sublocation"] |"نقط ه-1. 0" |تهی ||1 |"node_range_index_name" |"آنلاین" |100. 0 |"دامنه" |"گره" |["شخص"] |["نام خانوادگی"] |"دامنه 1. 0" |تهی ||5 |"node_text_index_nickname" |"آنلاین" |100. 0 |"متن" |"گره" |["شخص"] |["نام مستعار"] |"مت ن-2. 0" |تهی ||10 |"point_index_with_config" |"آنلاین" |100. 0 |"نقطه" |"گره" |["برچسب"] |["prop2"] |"نقط ه-1. 0" |تهی ||9 |"rel_point_index_name" |"آنلاین" |100. 0 |"نقطه" |"رابطه" |["خیابان"] |["تقاطع"] |"نقط ه-1. 0" |تهی ||2 |"rel_range_index_name" |"آنلاین" |100. 0 |"دامنه" |"رابطه" |["می داند"] |["از آنجا"] |"دامنه 1. 0" |تهی ||6 |"rel_text_index_name" |"آنلاین" |100. 0 |"متن" |"رابطه" |["می داند"] |["علاقه"] |"مت ن-2. 0" |تهی ||12 |"REL_TYPE_LOOKUP_INDEX" |"آنلاین" |100. 0 |"جستجو" |"رابطه" |تهی |تهی |"Token-Lookup-1. 0" |تهی ||7 |"text_index_with_indexprovider" |"آنلاین" |100. 0 |"متن" |"رابطه" |["نوع"] |["prop1"] |"مت ن-2. 0" |تهی ||15 |"منحصر به فرد Bookisbn" |"آنلاین" |100. 0 |"دامنه" |"گره" |["کتاب"] |["ISBN"] |"دامنه 1.
0 "|" منحصر به فرد Bookisbn "| +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 15 ردیف
یکی از ستون های خروجی از شاخص های نمایش ، نام فهرست است. این می تواند برای رها کردن شاخص با دستور Drop Index استفاده شود.
نتیجه < Pan> برای لیست همه ایندکس ها با ستون های خروجی پیش فرض ، می توان از دستور Show Indexes استفاده کرد. در صورت نیاز به همه ستون ها ، از شاخص های نمایش * بازده * استفاده کنید.
یکی از راه های فیلتر کردن خروجی از شاخص های نمایش بر اساس نوع فهرست ، استفاده از کلمات کلیدی نوع است که در توضیحات نحو ذکر شده است.
به عنوان مثال ، برای نشان دادن تنها شاخص های دامنه ، از شاخص های محدوده نمایش استفاده کنید.
یکی دیگر از روشهای انعطاف پذیر تر برای فیلتر کردن خروجی استفاده از بند Where است. یک مثال فقط نشان دادن شاخص هایی که متعلق به محدودیت ها نیستند.
برای نشان دادن تنها شاخص های دامنه که متعلق به یک محدودیت نیست ، می توانیم نسخه های فیلتر را ترکیب کنیم.
نمایش شاخص های دامنه
شاخص های دامنه را نشان دهید که در آن مالکیت NULL NULL است
نتیجه
جزئیات بیشتر در مورد توضیحات نحو را می توان در اینجا یافت.
این فقط ستون های خروجی پیش فرض را برمی گرداند.
برای به دست آوردن همه ستون ها ، استفاده کنید:
مثال ها
- شاخص افت
- یک فهرست را می توان با استفاده از نام با دستور Drop Index index_name حذف کرد (حذف شد). این دستور می تواند شاخص ها از هر نوع را کاهش دهد ، به جز محدودیت های پشتیبان. نام این فهرست را می توان با استفاده از دستور Show Indexes ، که در نام ستون خروجی آورده شده است ، یافت.
شاخص افت
جزئیات بیشتر در مورد توضیحات نحو را می توان در اینجا یافت.
دستور Drop Index به صورت اختیاری idempotent است. این بدان معنی است که اگر تلاش برای کاهش همان شاخص دو بار انجام شود ، رفتار پیش فرض آن خطایی است. اگر وجود داشته باشد ، هیچ خطایی پرتاب نمی شود و در صورت وجود شاخص ، هیچ اتفاقی نمی افتد.
رها کردن یک شاخص به امتیاز شاخص افت نیاز دارد.
مثال ها
یک فهرست را می توان با استفاده از نام با دستور Drop Index index_name حذف کرد (حذف شد). این دستور می تواند شاخص ها از هر نوع را کاهش دهد ، به جز محدودیت های پشتیبان. نام این فهرست را می توان با استفاده از دستور Show Indexes ، که در نام ستون خروجی آورده شده است ، یافت.
یک شاخص غیر موجود را رها کنید
یک فهرست را رها کنید
در بیانیه زیر سعی در رها کردن شاخص نامگذاری شده به عنوان مثال_INDEX خواهد بود.
رها کردن یک فهرست
DROP INDEX به عنوان مثال_INDEX
اگر یک شاخص با آن نام وجود داشته باشد ، حذف می شود ، اگر نه دستور شکست بخورد.
نام ایندکس باید در بین شاخص ها و محدودیت ها منحصر به فرد باشد.
بهترین روش این است که هنگام ایجاد ایندکس یک نام بگذارید. اگر نمایه به طور صریح نامگذاری نشده باشد، یک نام تولید خودکار دریافت می کند.
در بیانیه زیر سعی خواهد کرد شاخصی به نام Missed_INDEX_NAME را رها کند.
جزئیات بیشتر در مورد توضیحات نحو را می توان در اینجا یافت.
Drop Index Missed_index_name اگر وجود داشته باشد
اگر یک شاخص با آن نام وجود داشته باشد ، حذف می شود ، اگر نه دستور هیچ کاری نمی کند.
نحو
نام شاخص باید در بین شاخص ها و محدودیت ها بی نظیر باشد.
بهترین روش این است که در هنگام ایجاد نام ، نام را به این فهرست بدهید. اگر این شاخص به صراحت نامگذاری نشده باشد ، یک نام خودکار ایجاد می شود.
نحو
ایجاد فهرست متن [index_name] [اگر وجود نداشته باشد] برای (n: labelname) در (n. propertyname) [گزینه های ""]
ایجاد [دامنه] فهرست [index_name] [اگر وجود نداشته باشد] برای (n: labelname) در (n. propertyname_1 [، n. propertyname_2 ،. n. propertyname_n]) [گزینه ها ""]
یک شاخص دامنه بر روی گره ها ، چه در یک ویژگی واحد یا کامپوزیت ایجاد کنید.
ایجاد فهرست متن [index_name] [اگر وجود نداشته باشد] برای ()-"[" r: type_name "]"-() on (r. propertyname) [گزینه ها ""]
ایجاد [دامنه] فهرست [index_name] [اگر وجود نداشته باشد] برای ()-"[" r: type_name "]"-() on (r. propertyname_1 [، r. propertyname_2 ،. r. propertyname_n] [گزینه های "]
یک شاخص دامنه بر روی گره ها ، چه در یک ویژگی واحد یا کامپوزیت ایجاد کنید.
CREATE POINT INDEX [index_name] [اگر وجود ندارد] برای (n:LabelName) روشن (n. propertyName) [OPTIONS ""]
ایجاد فهرست متن [index_name] [اگر وجود نداشته باشد] برای (n: labelname) در (n. propertyname) [گزینه های ""]
یک فهرست متن را روی گره هایی ایجاد کنید که در آن ویژگی دارای یک مقدار رشته است.
CREATE POINT INDEX [index_name] [اگر وجود ندارد] برای ()-"["r:TYPE_NAME"]"-() روشن (r. propertyName) [OPTIONS ""]
ایجاد فهرست متن [index_name] [اگر وجود نداشته باشد] برای ()-"[" r: type_name "]"-() on (r. propertyname) [گزینه ها ""]
یک فهرست متن را روی گره هایی ایجاد کنید که در آن ویژگی دارای یک مقدار رشته است.
ارائه دهنده فهرست را می توان با استفاده از بند گزینه ها مشخص کرد.
ایجاد شاخص نقطه [index_name] [اگر وجود نداشته باشد] برای (n: labelname) در (n. propertyname) [گزینه های ""]
نحو
ارائه دهنده فهرست و پیکربندی را می توان با استفاده از بند گزینه ها مشخص کرد. فقط یک ارائه دهنده فهرست موجود برای این فهرست وجود دارد.
ایجاد شاخص نقطه [index_name] [اگر وجود نداشته باشد] برای ()-"[" r: type_name "]"-() on (r. propertyname) [گزینه ها ""]
نحو
نتیجه
ایجاد شاخص جستجو [index_name] [اگر وجود نداشته باشد] برای (n) در هر برچسب (n) [گزینه های ""]
یک شاخص جستجوی برچسب گره ایجاد کنید.
ارائه دهنده فهرست را می توان با استفاده از بند گزینه ها مشخص کرد. فقط یک ارائه دهنده فهرست موجود برای این فهرست وجود دارد.<* | field[, . ]>[سفارش توسط زمینه [،.]] [Skip n] [Limit n]] [که در آن بیان] [قسمت بازگشت [،.] [سفارش توسط زمینه [،.]] [SKIP N] [LIMIT N]]
یک شاخص جستجوی نوع رابطه ایجاد کنید.
ارائه دهنده فهرست را می توان با استفاده از بند گزینه ها مشخص کرد. فقط یک ارائه دهنده فهرست موجود برای این فهرست وجود دارد.
index index_name [اگر وجود داشته باشد]
یک شاخص از هر نوع شاخص را رها کنید.
دستور به صورت اختیاری idempotent است. این بدان معنی است که اگر تلاش برای کاهش همان شاخص دو بار انجام شود ، رفتار پیش فرض آن خطایی است. اگر وجود داشته باشد ، هیچ خطایی پرتاب نمی شود و در صورت وجود شاخص ، هیچ اتفاقی نمی افتد.
نمایش [همه |متن کامل |جستجو |نقطه |دامنه |متن] فهرست [es] [عملکرد
- [سفارش توسط زمینه [،.]] [Skip n] [Limit n]] [که در آن بیان] [قسمت بازگشت [،.] [سفارش توسط زمینه [،.]] [SKIP N] [LIMIT N]]
- فهرست فهرست ها را در پایگاه داده ، یا همه یا در نوع فهرست فیلتر کنید.
- هنگام استفاده از بند بازگشت ، بند عملکرد اجباری است و نباید حذف شود.
- range search: n.prop>ایجاد یک شاخص به امتیاز ایجاد شاخص نیاز دارد ، در حالی که رها کردن یک فهرست به امتیاز شاخص قطره نیاز دارد و شاخص های لیست نیاز به امتیاز شاخص نشان می دهد.
- برنامه ریز و کلمه کلیدی با استفاده از کلیدی که چگونه می توان برنامه ریز Cypher را از شاخص های خاص استفاده کرد (به ویژه در مواردی که برنامه ریز لزوماً از آنها استفاده نکرده باشد).
محدودیت های شاخص کامپوزیت
مانند شاخص های دامنه تک پروپری ، شاخص های دامنه کامپوزیت از همه پیش بینی ها پشتیبانی می کنند:
- بررسی برابری: n. prop = مقدار
- لیست عضویت را لیست کنید: N. Prop در لیست
- بررسی وجود: N. Prop تهی نیست
- ارزش
پیشوند جستجوی: با شروع می شود
برای جزئیات بیشتر در مورد هر اپراتور ، به اپراتورها مراجعه کنید.
WHERE n.prop1 = 'x' AND n.prop2 = 1 AND n.prop3>با این حال ، پیش بینی ها ممکن است به عنوان بررسی وجود و یک فیلتر برنامه ریزی شوند. برای بیشتر پیش بینی ها ، با پیروی از این محدودیت ها می توان از این امر جلوگیری کرد:<'e' AND n.prop5 = true AND n.prop6 IS NOT NULL
در صورت وجود هرگونه بررسی برابری و لیست پیش بینی های چک عضویت ، آنها باید برای اولین ویژگی های تعریف شده توسط شاخص باشند.
WHERE n.prop1 = 'x' AND n.prop2 = 1 AND n.prop3>می توان حداکثر یک محدوده جستجو یا پیشوند جستجو را انجام داد.
هر تعداد از پیش بینی های بررسی وجود وجود دارد.
هر محمول پس از جستجوی دامنه ، پیشوند جستجوی یا محمول بررسی وجود باید یک محمول بررسی وجود باشد.
در صورت وجود هرگونه بررسی برابری و لیست پیش بینی های چک عضویت ، آنها باید برای اولین ویژگی های تعریف شده توسط شاخص باشند.
به عنوان مثال ، یک شاخص در گره ها با: برچسب (prop1 ، prop2 ، prop3 ، prop4 ، prop5 ، prop6) و پیش بینی ها:
5 و N. Prop4
برنامه ریزی شده به صورت:
5 و N. Prop4 تهی نیست و N. Prop5 تهی نیست و N. Prop6 تهی نیست
تجارت با گزینههای باینری...
ما را در سایت تجارت با گزینههای باینری دنبال می کنید
برچسب :
نویسنده : حمیدرضا پگاه
بازدید : 26
تاريخ : يکشنبه
22 مرداد
1402 ساعت: 23:59