2016-06-24 10 views
3

APIアプリケーションで弾性検索(NEST)を使用しています。 名前に基づいて検索のインデックスを作成します。そのうまく動作します。C#でelasticsearch(NEST)を使用して自動威嚇を行う方法

var client = new ElasticClient(settings); 
var item = new NameIndex { ContentId = data.ContentId, 
name = data.Name }; 
client.Index(item); 

ここで、上記のインデックスの自動提案のための新しいAPIを生成します。このAPIの目的は、ユーザーが名前の入力を開始し、最初の文字がBで、Bで始まるすべてのステーションのリストをロードし、次の文字「B」でリストをBBなどで始まるステーションにさらに縮小します。

どうすればいいですか?ユーザータイピング値(queryValue)あたりなどの弾性インデックスからデータを取得することができます

+1

のために働いている - HTTPSを:// WWW .elastic.co/guide/en/elasticsearch/reference/current/search-suggesters-completion.html –

答えて

0

以下の検索クエリが、それは完成提案者を見てみましょう自動提案

var data = client.Search<NameIndex >(i => i.Query(m => m 
.MatchPhrasePrefix(c => c.OnField(p => p.name) 
.Query(queryValue))) 
).Documents.ToList(); 
+0

私はこのようなことをしましたが、結果の文書から、requriedフィールドをリストに追加し、このリストをAutoCompleteExtenderまたはjqueryオートコンプリートを使用して、テキストボックスの下に提案を表示します。これ以外の方法はありますか? – ASN

+0

この場合、APIは提案データのリストを返します。これはAJAX呼び出し(API)によってアクセスされ、UI –

+0

Sanjeevにバインドされていると思います。ええ、私の場合でも、私たちのマッピングスタイルに基づいて結果を生成するだけです。私はresults.documentsをループしてリストに追加し、それらをUIにバインドします – ASN

関連する問題