2017-06-16 4 views
0

Ich weiß, dass diese Frage schon einmal gestellt wurde, aber die Antworten, die ich gefunden habe, haben mein Problem nicht angesprochen.Azure Search vs Azure DocumentDB

Wir verwenden die azure-Suche sowohl für Szenarien, in denen Text analysiert werden muss, als auch für Szenarien, in denen nur ein Filter auf statische Daten angewendet wird. Wenn Sie beispielsweise einen Produktdetail-Stub in azurblauer Suche mit nur Kategorie und Preis haben, können Benutzer bestimmte Kategorien in bestimmten Preisbereichen finden, ohne eine Textanalyse durchführen zu müssen. Für solche Szenarien ist DocumentDB schneller oder Azure Search.

Wenn Facettierung erforderlich ist, bietet DocumentDB diese Facility (Facettierung oder Gruppierung nach) ebenso effizient an wie Azure Search Facetting?

Gibt es eine Möglichkeit, auf die eindeutigen Begriffe zuzugreifen, die in Azure Search indiziert wurden? Zum Beispiel, wenn London, England als London und England indexiert wird, um den Index nachzuschlagen und die einzigartigen Begriffe London und England zu erhalten.

Zusätzlich können wir beliebige Metadaten an Begriffe anhängen, so dass wir zum Beispiel erkennen können, dass der Begriff London eine Stadt ist, während England der Name eines Landes ist.

Vielen Dank

Antwort

1

Generell, wenn Sie nur strukturierte Abfragen Cosmos DB (die Entwicklung der DocumentDB) formulieren müssen, ist eine natürliche Wahl. Es hat mehr Flexibilität bei Konsistenzmodellen (was es für Ihre Anwendung einfacher macht, wenn Sie beispielsweise Ihre eigenen Schreibvorgänge sofort lesen möchten), erfordert kein Schema, hat flexiblere Abfragen usw. (das ist ein allgemeiner Zweck) Datenbank statt einer domänenspezifischen wie die Suchmaschine)

Wenn Sie sowohl strukturierte als auch Suchanfragen benötigen, kann Azure Search beides häufig verarbeiten. Sie können Azure Search für beide Aspekte dieser Workload verwenden, wenn Ihre Anwendung das schwächere Konsistenzmodell von Azure Search tolerieren kann und Sie keine der Abfragen benötigen, die von Cosmos DB ausgedrückt werden können, die in Azure Search nicht ausgedrückt werden können.

Wenn Facettierung erforderlich ist, nicht bieten DocumentDB auch, dass die Anlage

Cosmos DB unterstützt jedoch Aggregate, dass Sie hier diese mehr über lesen: https://azure.microsoft.com/en-us/blog/planet-scale-aggregates-with-azure-documentdb/?v=17.23h

Es sei denn, Sie riesige Daten/query Volumes, Leistung ist mehr eine Funktion von wie viel Kapazität, die Sie als etwas inhärent nur für welchen Dienst Sie bereitstellen. Dennoch bietet Cosmos DB strenge SLA für Lese- und Schreiblatenz.

Gibt es eine Möglichkeit, die einzigartigen Bedingungen für den Zugriff auf indizierte in Azure Search

Das ist wie ein anderes Thema scheint, vielleicht eine andere Frage beginnen, wenn Sie mehr Einzelheiten benötigen. Kurze Version ist, dass es keine Möglichkeit gibt, auf das Wörterbuch der tatsächlichen Begriffe zuzugreifen. Wenn Sie wissen möchten, welcher Satz von Begriffen existiert, können Sie dies manchmal dadurch erreichen, dass Sie alle gewünschten Begriffe (möglicherweise eine Teilmenge davon) in einem Sammlungsfeld (String) in jedem Dokument speichern und dann darüber streichen.

+0

Vielen Dank für Ihre Antwort. Über wie viel Latenz sprechen wir mit Azure Search. Millisekunden, Sekunden? Was ist mit den Metadaten, die ich oben erwähnt habe! – user2981411

+0

Es hängt viel von den Arten der Abfragen und der Art des Datensatzes ab.Die meisten unserer Kunden sehen Latenzen in den 10 oder 100 Millisekunden, aber wir sehen Szenarien, in denen Abfragen aufgrund ihrer Komplexität, der benötigten Verarbeitungszeit für die Abfragezeit usw. mehrere Sekunden benötigen. In Bezug auf Metadaten Es gibt eine Möglichkeit, Eigenschaften an Terme anzuhängen. Sie können Tricks wie das Hinzufügen eines Suffix zu einem Begriff ausführen. Sie müssen jedoch sicherstellen, dass Sie das Suffix sowohl zur Indexierung als auch zur Abfragezeit hinzufügen, um sicherzustellen, dass Sie weiterhin Begriffe finden. –