“البحث المعرفي في Azure” – مشكلة تكوين “الحقول”.

برمجة


أنا أعمل على إنشاء محرك بحث دلالي باستخدام “Azure Cognitive Search”. لقد قمت بتحميل مجموعة بيانات Excel الخاصة بي برمجياً باستخدام Python.

للبحث عن الاستعلامات وتشغيلها، يمكن ربط كل حقل/عمود في مجموعة بيانات Excel بميزات مثل “قابل للبحث” و”قابل للفرز” و”قابل للاسترجاع” و”قابل للتصفية” و”قابل للواجه”.

لقد حاولت تحديد هذه الميزات للحقول/الأعمدة في مجموعة البيانات الخاصة بي، ولكن تم تعطيلها بطريقة ما. يمكن تحديد الخيار “القابل للاسترجاع” فقط. لقد حاولت برمجيًا ويدويًا. لا تعمل أي من هذه الأساليب.

ملحوظة: أنا أستخدم نسخة تجريبية مجانية. لست متأكدًا مما إذا كان هذا هو سبب المشكلة، ولكن الوثائق تشير إلى أن “القابل للاسترجاع” ليس له أي تأثير على حجم الفهرس. تستهلك “قابل للتصفية” و”قابل للفرز” و”قابل للواجه” مساحة تخزين أكبر”. كما أن بياناتي صغيرة جدًا وتتكون من 8 صفوف و10 أعمدة، ومعظمها أرقام ونص من كلمة واحدة.

ما حاولت:

رمز Python الخاص بي لتحديد الميزات:

بايثون
import pandas as pd
import json
from azure.search.documents.indexes.models import SimpleField, SearchFieldDataType
import os
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient 
from azure.search.documents import SearchClient

df_azure=pd.read_excel("C:/stats.xlsx")

endpoint="https://azure-service.search.windows.net"
key="q5EMEa0at5VJRvwTVlkqWhvHSKs"

SearchIndexClient=SearchIndexClient(endpoint, AzureKeyCredential(key))
indexName="indexes-azure"

from azure.search.documents.indexes.models import (
    ComplexField,
    CorsOptions,
    SearchIndex,
    ScoringProfile,
    SearchFieldDataType,
    SimpleField,
    SearchableField
)

fields=[
     SearchableField(name="rule_name", type=SearchFieldDataType.String, 
                     facetable=True, filterable=True, sortable=True),
     SearchableField(name="rule_description", type=SearchFieldDataType.String, 
                     facetable=True, filterable=True, sortable=True),
     SearchableField(name="Date_of_execution", 
                     type=SearchFieldDataType.String, facetable=True, 
                     filterable=True, sortable=True),
     SearchableField(name="Data_Source", type=SearchFieldDataType.String, 
                     facetable=True, filterable=True, sortable=True),  
     SearchableField(name="Total_no_of_records", 
                     type=SearchFieldDataType.String, 
                     facetable=True, filterable=True, sortable=True),
     SearchableField(name="No_of_failed_records", 
                     type=SearchFieldDataType.String, facetable=True, 
                     filterable=True, sortable=True)
] 
  
indexConfig= SearchIndex(name=indexName,
                         fields=fields,
                         scoring_profiles=[],
                         cors_options= CorsOptions(allowed_origins=["*"], 
                         max_age_in_seconds=60))

index=SearchIndexClient.create_index(indexConfig)

SearchClient = SearchClient(endpoint, indexName, AzureKeyCredential(key))
result = SearchClient.upload_documents(documents=DOCUMENTS)
print("DOCUMENT upload successful: {}".format(result[0].succeeded))
Output: DOCUMENT upload successful: True

الحل 1

أنت تواجه مشكلة حيث يمكن تحديد السمة “القابلة للاسترجاع” فقط للحقول الموجودة في فهرس البحث المعرفي في Azure، بينما يتم تعطيل السمات الأخرى مثل “القابلة للبحث” و”القابلة للفرز” و”القابلة للتصفية” و”القابلة للواجه”.

قد يكون هذا مرتبطًا بالقيود الموجودة في الطبقة المجانية من Azure Cognitive Search. على الرغم من أن الوثائق تشير إلى أن السمات مثل “filterable” و”sortable” و”facetable” تستهلك مساحة تخزين أكبر، إلا أنها لا تنص صراحة على أنها معطلة للطبقات المجانية.

واجهت نفس المشاكل.

コメント

タイトルとURLをコピーしました