問題タブ [search-suggestion]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
google-apps-script - Google Apps Script で Google 推奨クエリ API を使用する方法
Google Apps Script でGoogle 推奨クエリ APIを使用する方法はありますか? 答えが「いいえ」の場合、最良の代替手段は何ですか? 私の目的は、スプレッドシート内の値の不適切なクエリ キーワードに対して、スペル修正とセマンティック アプロキシメーションを実行することです。
autocomplete - トークンによる Elasticsearch オートコンプリートまたはオートサジェスト
Google のようなオートコンプリートに似ていますが、1 つのトークンまたは単語のみを使用して、トークンに基づいて用語を完成させる方法に関する提案を作成したいと考えています。
トークン化されるファイル名を検索したいと思います。たとえば、「BRAND_Connect_A1233.jpg」は、「brand」、「connect」、「a1234」、および「jpg」にトークン化されます。
ここで、たとえば「 Con 」について何か提案をお願いしたいと思います。提案は、完全なファイル名ではなく、完全に一致するトークンを提供する必要があります。
- 接続
- 輪郭
- 概念
- ...
「A12」の候補は、「A1234」、「A1233」、「A1233」のはずです...
例
クエリ、ファセット、およびフィルターの操作は正常に機能します。
まず、トークナイザーとフィルターを含むマッピングを作成しました。
どちらのアナライザーも非常にうまく機能します。
今、いくつかのサンプルデータを追加しました
望ましい提案を得るためのさまざまなアプローチは、期待される結果をもたらしません。アナライザーに名前を付けようとし、アナライザーとワイルドカードのさまざまな組み合わせを試しました。
android - Actionbar SearchView の非同期 ContentProvider を作成する
検索候補を提供するために ContentProvider に接続されている ActionBar に SearchView があります。これらの提案は、DB (ContentProvider では通常) からではなく、Web サービスから提供されます。そのため、ContentProvider の Cursor を非同期で処理する必要があります。私のコードはこれまでのところ機能していますが、検索候補は常に「後ろ」に1文字あります。
を入力する"the"
と、前の検索からすべての結果が得られます =>"th"
を入力する"they"
と、前の検索からすべての結果が得られます =>"the"
Cursor に新しい結果があることを SearchView に伝えるにはどうすればよいですか? ContentObserver と ContentResolver().notifyChange() を調べましたが、SearchView のコンテキストで実際に使用することはできません。
これまでの私のコードは次のとおりです。重要な部分は、ContentProvider の onResponse-callback にあります。新しい MatrixCursor を作成し、それを使用してメンバ MatrixCursor をオーバーライドします。
AutocompleteSuggestionProvider は ContentProvider を拡張します
Androidマニフェスト
searchable.xml
java - Lucene の新しい AnalyzingInfixSuggester API を使用して自動提案を実装する方法は?
私は Lucene の初心者で、Google と同じように自動提案を実装したいと考えています。「G」のような文字を入力すると、リストが表示されます。自分で試すことができます。
ネット全体で調べました。誰もこれを行っていないため、パッケージの提案にいくつかの新しいツールが提供されます
しかし、私はそれを行う方法を教えてくれる例が必要です
誰でも助けることができますか?
c# - 加重フィールドとのあいまい比較 (類似のインスタンスを提案)
今日、私は特定のタスクに出くわし、きれいなコードでそれを解決するのを楽しんだので、それをクラスの他のメンバーと共有するのはクールだろうと決めました.
タスク:
T
タイプのインスタンス(ソース) とタイプのインスタンスのコレクション(可能な提案)が与えられた場合T
、ソースに類似した提案を提供し、類似度によって並べ替え、類似度が特定のしきい値を下回る提案を完全に除外します。
類似性は、インスタンスの複数のフィールドのファジー文字列比較であり、各フィールドには重要度があります。
入力例:
ソース インスタンス:
考えられる提案:
フィールドの重要性:
- A: 30%
- B: 50%
- C: 20%
出力例:
最小類似度しきい値を満たしていないため、可能な提案Bye;world;and fairwell
はまったくここにないことに注意してください (しきい値が少なくとも50%
加重類似度であるとしましょう) 。
C
最初の結果は、フィールドがソースとまったく似ていなくても、ソースに最も似ていC
ます20%
。一致) ソースに。
あいまい比較の補足説明
string a
比較に使用するstring b
アルゴリズムは、既知のファジー比較アルゴリズムのいずれかにすることができますが、それはここでは重要ではありません。
では、どうすればその可能な提案のリストを順序付けされた提案の実際のリストに変えることができるでしょうか? (ああ、主よ、助けてください、など)
angularjs - AngularJS + UI Bootstrap Typeahead 実装の問題
このコードを採用することで、Web Api コントローラーを使用して Typeahead を実装しようとしています。
HTML
app.js のコントローラー
ただしreturn $http.jsonp("http://gd.geobytes.com/AutoCompleteCity?callback=JSON_CALLBACK &filter=US&q=" + cityName)
、独自の WebApi コントローラーを呼び出すように変更すると、return $http.jsonp("api/airports/" + cityName)
動作が停止します。
しかし、Web API を直接呼び出すと、次のhttp://mysite:80/api/airports/los
json が返されます。
これは、によって返されるものとまったく同じ形式ですhttp://gd.geobytes.com/AutoCompleteCity?filter=US&q=los
:
お知らせ下さい。
android - Android: 検索ウィジェットのカスタム候補アイコンに URL から画像を追加する
タイトルが示すように、検索ウィジェットのカスタム提案のアイコンとして、URL からいくつかの画像を追加したいと考えています。この android.com の参照で、Uri を使用する必要があることがわかりますが、方法がわかりません。
solr - Solr smart next word Suggester (最も頻繁に出現する単語)
私はsolrをliferayと統合しており、スマートな次の単語の提案者を実装したいと考えています。たとえば、ドキュメントのタイトルが次の場合:
- Solrは世界最高の検索エンジン
- Solr は lucene 検索エンジンに実装されています
- Solr は世界中の開発者の 80% が検索エンジンとして使用している lucene です
- lucene は、make search の実装のためにアプリ サーバーに個別にインストールする必要はありません。
したがって、Solrと入力すると、次の結果が得られるはずです。
- ソル
- ソル ルセン
- ソルサーチ
- ソルエンジン
- ソルワールド
等
luceneと入力すると、次の結果が得られるはずです。
- ルセン
- ルセン検索
- ルセンエンジン
- ルセンワールド
等
私は多くの例を試しましたが、それらは機能しますが、次の問題に直面しています:
- プレフィックスSolrから開始すると、提案が機能します。中間の単語を入力し始めると、機能しません
- 次の最適な単語ではなく、完全な文を取得しています。
助けてください。前もって感謝します :)
elasticsearch - Elasticsearch - フレーズ サジェスターのダイレクト ジェネレーターのソート タイプを変更するには?
フレーズ サジェスターを使用して、もしかして機能を作成しようとしています。用語の提案者にテキストを与え、結果をスコアで並べ替えると、用語ベースの提案の上部に最も必要な結果が得られます。しかし、これらの個別の結果を組み合わせても意味がないように思えます。ただし、前の用語サジェスターと同じパラメーターでフレーズ サジェスターを試してみると、必要な結果が得られません。
上記は、用語の提案から取得した用語の頻度とスコアを示しています。
以下は、フレーズ1で得られるものです。
フレーズ サジェスターは、用語の頻度を使用して、直接サジェスターからの情報を組み合わせているようです。ただし、上記でわかるように、これは望ましい結果ではなく、この状況では本当に良い提案は 3 位に落ちます。この動作を変更し、フレーズ サジェスターのスコアに関して用語ベースのサジェスチョンを組み合わせる方法はありますか?
elasticsearch - MultiSearch クエリで Nest Phrase Suggester を使用する
タイプごとに複数のフィールドを持つ複数のタイプに対する MultiSearch クエリがあります。個々のフィールドの個々の SearchDescriptor には .SuggestPhrase() を追加できますが、検索クエリ全体には追加できないことがわかりました。複数検索クエリにフレーズ候補を適用するにはどうすればよいですか? 理想的には、検索対象のすべてのフィールドに適用されます。
私の使用例は次のとおりです。ユーザーが MultiSearch クエリを実行します。彼らは欲しいものを見つけられませんでした。この時点で、彼らが探している可能性のある別のクエリを提案したいと思います。これは、Google の「もしかして...」のレコメンデーションに似ています。