2017-08-28 2 views
0

Ich bin neu in Azure Search. Ich versuche, "contains" Logik in meiner Suchanfrage zu verwenden. Ich habe es nachgeschlagen und herausgefunden, dass ich in meiner Suchanfrage etwas hinzufügen muss, wie in der Folge.Azure Suche enthält das Wort funktioniert nicht wie erwartet

&queryType=full&search=/.*_search.*/ 

wo _search im String I suchen möchten. Nun, was passiert, ist, dass die Logik "enthält" gut funktioniert. Zum Beispiel versuche ich Sweep zu suchen und ich bekomme gut Sweep-cmu in den Ergebnissen.

Aber wenn ich suche gut Sweep-cmu, bekomme ich null Ergebnisse. Warum? und wie kann ich meine Abfrage verbessern, um Ergebnisse zu erhalten, wenn ich partielle und vollständige Strings eingeben.

Antwort

1

Wenn Sie eine exakte Übereinstimmung für die Suchanfrage wünschen, umgeben Sie die Abfrage bitte mit doppelten Anführungszeichen. zB: "well sweep-cmu" Dadurch werden alle Dokumente zurückgegeben, die den exakten Ausdruck enthalten.

Da Sie gerade mit der Azure-Suche begonnen haben, ist dieser Artikel möglicherweise besonders interessant. Es erklärt, wie die Volltextsuche in Azure Search funktioniert. https://docs.microsoft.com/en-us/azure/search/search-lucene-query-architecture

Um Ergebnisse für Teilterme zu erhalten, sollten Sie Platzhalterausdrücke in Ihren Suchanfragen verwenden. Der obige Artikel erklärt dies im Detail. PS: Einige Platzhalterabfragen können sehr teuer und daher langsam sein.

+0

Ich versuchte mit '" & queryType = full & search = /. * "+ _search +". */| " + _search' und gibt mir bisher die gewünschten Ergebnisse. Ich denke jetzt, es kombiniert sowohl "enthält" Logik und Volltextsuche. Und das Suchen in Anführungszeichen ("well sweep-cmu") ergibt genau die obigen Ergebnisse. –

Verwandte Themen