Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Usługa Cosmos DB w sieci szkieletowej oferuje zaawansowaną funkcję wyszukiwania pełnotekstowego jako ogólnie dostępną. Ta funkcja została zaprojektowana w celu ulepszenia natywnych funkcji wyszukiwania aplikacji bez konieczności zewnętrznej usługi wyszukiwania na potrzeby podstawowego wyszukiwania pełnotekstowego.
Co to jest wyszukiwanie pełnotekstowe?
Usługa Cosmos DB w Fabric oferuje indeksowanie i wyszukiwanie pełnotekstowe, mające na celu ulepszenie obciążeń wyszukiwania i pobierania. Ta funkcja obejmuje zaawansowane techniki przetwarzania tekstu, takie jak stemming, zatrzymywanie usuwania wyrazów i tokenizacja, umożliwiając wydajne i skuteczne wyszukiwanie tekstu za pośrednictwem wyspecjalizowanego indeksu tekstowego. Wyszukiwanie pełnotekstowe obejmuje również ocenianie pełnotekstowe z funkcją, która ocenia istotność dokumentów dla danego zapytania wyszukiwania. BM25 lub Best Matching 25 uwzględnia czynniki takie jak częstotliwość terminów, odwrotna częstotliwość dokumentów i długość dokumentu w celu oceny i klasyfikacji dokumentów. Dzięki temu w górnej części wyników wyszukiwania są wyświetlane najbardziej odpowiednie dokumenty, co zwiększa dokładność i użyteczność wyszukiwań tekstowych.
Wyszukiwanie pełnotekstowe jest idealne w różnych scenariuszach, w tym:
Handel elektroniczny: szybkie znajdowanie produktów na podstawie opisów, przeglądów i innych atrybutów tekstowych.
Zarządzanie zawartością: efektywne wyszukiwanie artykułów, blogów i dokumentów.
Obsługa klienta: Zyskiwać odpowiednie zgłoszenia wsparcia technicznego, często zadawane pytania oraz artykuły w bazie wiedzy.
Zawartość użytkownika: analizowanie i wyszukiwanie zawartości wygenerowanej przez użytkownika, takiej jak wpisy i komentarze.
RAG dla czatbotów: ulepsz odpowiedzi czatbota, pobierając odpowiednie informacje z dużego korpusu tekstu, poprawiając dokładność i znaczenie odpowiedzi.
Aplikacje sztucznej inteligencji dla wielu agentów: umożliwia wielu agentom sztucznej inteligencji wspólne wyszukiwanie i analizowanie ogromnych ilości danych tekstowych, zapewniając kompleksowe i zniuansowane szczegółowe informacje.
Jak używać wyszukiwania pełnotekstowego
Skonfiguruj kontener z polityką pełnego tekstu i indeksem pełnotekstowym.
Wstaw dane z właściwościami tekstowymi.
Uruchamianie zapytań względem danych przy użyciu funkcji systemu wyszukiwania pełnotekstowego.
Konfigurowanie zasad kontenera i indeksów na potrzeby wyszukiwania hybrydowego
Aby użyć funkcji wyszukiwania pełnotekstowego, należy najpierw zdefiniować dwie zasady:
Zasady pełnotekstowe na poziomie kontenera definiujące, które ścieżki zawierają tekst dla nowych funkcji systemu zapytań pełnotekstowych.
Indeks pełnotekstowy dodany do zasad indeksowania, który umożliwia wydajne wyszukiwanie.
Zapytania wyszukiwania pełnotekstowego można uruchamiać bez tych zasad, ale nie używają indeksu pełnotekstowego i mogą zużywać więcej jednostek żądań (RU). Bez tych zasad wyszukiwanie pełnotekstowe może również trwać dłużej. Zalecane jest zdefiniowanie zasad pełnego kontenera tekstu i indeksu.
Polityka pełnego tekstu
Dla każdej właściwości tekstowej, którą chcesz skonfigurować do wyszukiwania pełnotekstowego, należy zadeklarować zarówno path właściwość z tekstem, jak i language tekst. Proste zasady pełnotekstowe mogą być następujące:
{
"defaultLanguage": "en-US",
"fullTextPaths": [
{
"path": "/text",
"language": "en-US"
}
]
}
Definiowanie wielu ścieżek tekstowych jest łatwe przez dodanie innego elementu do tablicy fullTextPolicy :
{
"defaultLanguage": "en-US",
"fullTextPaths": [
{
"path": "/text1",
"language": "en-US"
},
{
"path": "/text2",
"language": "en-US"
}
]
}
Ważne
Symbole wieloznaczne (*, []) nie są obecnie obsługiwane w polityce pełnotekstowej ani w indeksie pełnotekstowym.
Aby uzyskać więcej informacji i przykłady ustawień zasad pełnotekstowych, zobacz przykłady zasad indeksowania pełnotekstowego.
Obsługa wielu języków
Obsługa wielu języków umożliwia indeksowanie i wyszukiwanie tekstu w językach poza językiem angielskim. Stosuje tokenizację specyficzną dla języka, stemming i usuwanie stopwordów, aby uzyskać dokładniejsze wyniki wyszukiwania.
Uwaga / Notatka
Obsługa wielu języków jest dostępna we wczesnej wersji zapoznawczej. Wydajność i jakość wyszukiwania mogą być inne niż wyszukiwanie pełnotekstowe w języku angielskim. Na przykład usuwanie stopwordu jest obecnie dostępne tylko dla języka angielskiego (en-us). Funkcje mogą ulec zmianie dzięki ewolucji wersji zapoznawczej.
Aby uzyskać więcej informacji na temat ograniczeń związanych z obsługą wielu języków, zobacz Ograniczenia pełnotekstowe usługi Cosmos DB.
Indeks pełnotekstowy
Wszystkie operacje wyszukiwania pełnotekstowego powinny korzystać z indeksu pełnotekstowego. Indeks pełnotekstowy można łatwo zdefiniować w dowolnej bazie danych Cosmos DB w polityce indeksu Fabric, zgodnie z przykładem tutaj:
{
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/*"
}
],
"excludedPaths": [
{
"path": "/\"_etag\"/?"
},
],
"fullTextIndexes": [
{
"path": "/text"
}
]
}
Podobnie jak w przypadku zasad pełnotekstowych indeksy pełnotekstowe można definiować na wielu ścieżkach:
{
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/*"
}
],
"excludedPaths": [
{
"path": "/\"_etag\"/?"
},
],
"fullTextIndexes": [
{
"path": "/text"
},
{
"path": "/text2"
}
]
}
Zapytania wyszukiwania pełnotekstowego
Operacje wyszukiwania pełnotekstowego i oceniania są wykonywane przy użyciu następujących funkcji systemowych w usłudze Cosmos DB w języku zapytań Fabric.
FULLTEXTCONTAINS: zwraca wartośćtrue, jeśli dany ciąg jest zawarty w określonej właściwości dokumentu. Ta funkcja jest przydatna w klauzuliWHERE, gdy chcesz upewnić się, że określone słowa kluczowe są zawarte w dokumentach zwracanych przez zapytanie.FULLTEXTCONTAINSALL: zwraca wartośćtrue, jeśli wszystkie podane ciągi znajdują się we określonej właściwości dokumentu. Ta funkcja jest przydatna w klauzuliWHERE, gdy chcesz upewnić się, że wiele słów kluczowych jest uwzględnionych w dokumentach zwracanych przez zapytanie.FULLTEXTCONTAINSANY: zwracatrue, jeśli którykolwiek z podanych ciągów znajduje się we określonej właściwości dokumentu. Ta funkcja jest przydatna w klauzuliWHERE, gdy chcesz upewnić się, że co najmniej jeden z słów kluczowych jest uwzględniony w dokumentach zwracanych przez zapytanie.FULLTEXTSCORE: Użyj tej funkcji w klauzuli ,ORDER BY RANKaby zwrócić dokumenty uporządkowane według ich pełnego wyniku tekstowego, umieszczając najbardziej istotne (najwyższe wyniki) dokumenty u góry i najmniej istotne (najniższe wyniki) u dołu.
Oto kilka przykładów każdej używanej funkcji.
FULLTEXTCONTAINS
W tym przykładzie chcemy uzyskać pierwsze 10 wyników, w których fraza "czerwony rower" znajduje się we właściwości c.text.
SELECT TOP 10
*
FROM
container c
WHERE
FULLTEXTCONTAINS(c.text, "red bicycle")
FULLTEXTCONTAINSALL
W tym przykładzie chcemy uzyskać pierwsze 10 wyników, w których słowa kluczowe "czerwony" i "rower" znajdują się we właściwości c.text, ale niekoniecznie razem.
SELECT TOP 10 *
FROM c
WHERE FULLTEXTCONTAINSALL(c.text, "red", "bicycle")
FULLTEXTCONTAINSANY
W tym przykładzie chcemy uzyskać pierwsze 10 wyników, w których słowa kluczowe "czerwony" i "rower" lub "deskorolka" znajdują się we właściwości c.text.
SELECT TOP 10
*
FROM
container c
WHERE
FULLTEXTCONTAINS(c.text, "red") AND
FULLTEXTCONTAINSANY(c.text, "bicycle", "skateboard")
FULLTEXTSCORE
W tym przykładzie chcemy uzyskać pierwsze 10 wyników, w których uwzględniono "góry" i "rower" oraz posortowane według kolejności istotności. Oznacza to, że dokumenty, które mają te terminy częściej, powinny pojawiać się wyżej na liście.
SELECT TOP 10
*
FROM
container c
ORDER BY RANK
FULLTEXTSCORE(c.text, "bicycle", "mountain")
Ważne
FULLTEXTSCORE można używać tylko w klauzuli ORDER BY RANK , a nie w instrukcji SELECT lub klauzuli WHERE .
Wyszukiwanie rozmyte
Wyszukiwanie rozmyte może zwiększyć odporność na literówki i odmiany tekstu. Można określić dozwoloną "odległość" (liczbę edycji) między terminem wyszukiwania a tekstem dokumentu, co pozwala na uznanie bliskich dopasowań za trafienia. Maksymalna odległość, którą można określić, wynosi 2 (dwie edycje).
Uwaga / Notatka
Wyszukiwanie rozmyte jest w wczesnej wersji zapoznawczej. Wydajność, jakość i funkcjonalność mogą ulec zmianie dzięki ewolucji wersji zapoznawczej.
SELECT TOP 10
*
FROM
container c
WHERE
FULLTEXTCONTAINS(c.text, {"term": "red", "distance":1}, {"term": "bicycle", "distance":2})