問題タブ [faceted-search]
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.
performance - UnInvertedField.getUnInvertedField()およびSegmentReader$CoreReaders.getTermsReaderの複数のブロックされたスレッド
Solr1.3からSolr1.4.1にアップグレードしています。Solr 1.3を使用しているときに、「org.apache.lucene.store.FSDirectory $ FSIndexInput.readInternal()」で複数のブロッキングアクティブスレッドが表示されていました。
NIOの利点を活用するために、Solr 1.4.1にアップグレードすると、「org.apache.solr.request.UnInvertedField.getUnInvertedField()&」に他のタイプの複数のブロッキングスレッドが表示されます。
SegmentReader $ CoreReaders.getTermsReader "。このため、QTimesは数百から数千ミリ秒まで急上昇します。1回のクエリで最大30〜40秒になります。
- 複数のブロッキングスレッドは、数千のクエリの後に表示されます。
- 同じフィールドでのファセットとソートはありません。
- ファセットフィールドは複数値のテキストフィールドですが、大きなテキスト値はありません。
- インデックスサイズ-約10GB
- schema.xmlでファセットのメソッドを指定していません。
- フィールド値のキャッシュ設定は次のとおりです。
誰かがこれらのブロックされたスレッドが表示される理由を教えてください。
また、それらがフィールド値キャッシュに関連している場合、サイズ175のキャッシュはごくわずかな初期クエリでいっぱいになり、その直後に複数のブロッキングスレッドが表示されますか?
「facet.method=enum」がある場合、どのような違いがありますか?
これはすべてfieldValueCacheに関連していますか、それともこれらのブロッキングスレッドを回避するために設定する必要がある他の構成がありますか?
ありがとう、
ラチタ
キャッシュ値の例:
facetField1_27443:
{field = facet1_27443、memSize = 4214884、tindexSize = 52、time = 22、phase1 = 15、nTerms = 4、bigTerms = 0、termInstances = 6、uses = 1}
facetField1_70:
{field = facetField1_70、memSize = 4223310、tindexSize = 308、time = 28、phase1 = 21、nTerms = 636、bigTerms = 0、termInstances = 14404、uses = 1}
facetField2:{field = facetField2、memSize = 4262644、tindexSize = 3156、time = 273、phase1 = 267、nTerms = 12188、bigTerms = 0、termInstances = 1255522、uses = 7031}
「org.apache.solr.request.UnInvertedField.getUnInvertedField()-BLOCKED」のスタックトレース
at org.apache.solr.request.UnInvertedField.getUnInvertedField(UnInvertedField.java:837)at org.apache.solr.request.SimpleFacets.getTermCounts(SimpleFacets.java:250)at org.apache.solr.request.SimpleFacets.getFacetFieldCounts (SimpleFacets.java:283)at org.apache.solr.request.SimpleFacets.getFacetCounts(SimpleFacets.java:166)at org.apache.solr.handler.component.FacetComponent.process(FacetComponent.java:72)atorg。 apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:195)at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131)at org.apache.solr.core.SolrCore.execute( SolrCore.java:1316)at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:338)at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:241)atcom.caucho。server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87)at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:187)at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java: 266)com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:270)at com.caucho.server.port.TcpConnection.run(TcpConnection.java:678)at com.caucho.util.ThreadPool $ Item .runTasks(ThreadPool.java:721)at com.caucho.util.ThreadPool $ Item.run(ThreadPool.java:643)at java.lang.Thread.run(Thread.java:595)compRequest(HttpRequest.java:270)at com.caucho.server.port.TcpConnection.run(TcpConnection.java:678)at com.caucho.util.ThreadPool $ Item.runTasks(ThreadPool.java:721)at com.caucho .util.ThreadPool $ Item.run(ThreadPool.java:643)at java.lang.Thread.run(Thread.java:595)compRequest(HttpRequest.java:270)at com.caucho.server.port.TcpConnection.run(TcpConnection.java:678)at com.caucho.util.ThreadPool $ Item.runTasks(ThreadPool.java:721)at com.caucho .util.ThreadPool $ Item.run(ThreadPool.java:643)at java.lang.Thread.run(Thread.java:595)
org.apache.lucene.index.SegmentReader $ CoreReaders.getTermsReader()-ブロック
org.apache.lucene.index.SegmentReader $ CoreReaders.getTermsReader(SegmentReader.java:170)のorg.apache.lucene.index.SegmentTermDocsにあります。(SegmentTermDocs.java:52)org.apache.lucene.index.SegmentReader.termDocs(SegmentReader.java:987)、org.apache.lucene.index.IndexReader.termDocs(IndexReader.java:1102)、org.apache。 lucene.index.SegmentReader.termDocs(SegmentReader.java:981)at org.apache.solr.search.SolrIndexReader.termDocs(SolrIndexReader.java:320)at org.apache.solr.search.SolrIndexSearcher.getDocSetNC(SolrIndexSearcher.java: 640)org.apache.solr.search.SolrIndexSearcher.getPositiveDocSet(SolrIndexSearcher.java:563)at org.apache.solr.search.SolrIndexSearcher.numDocs(SolrIndexSearcher.java:1422)at com.askme.solrenhancements.facet.ExtendedFacet com.askme.solrenhancementsの.getCustomFacetCount(ExtendedFacet.java:132)。
php - Magento、カスタム製品一覧
Mage_Catalog_Block_Product_List に基づいて、独自の製品リスト ページを作成しました。
アプリ/コード/ローカル/メイジ/カタログ/ブロック/製品/Special.php:
これを CMS ページの中央の列に含めます。
問題は次のとおりです。製品リストは問題なく表示されますが、左側の列に階層化されたナビゲーションが表示されません。
通常のリストとまったく同じテンプレートを使用しているため、これは非常に奇妙です。
私がチェックしたいくつかのこと:
- Mage_Catalog_Block_Product_Special は単なるプロキシ クラスです。これはうまくいきません。CMS ページでブロック タイプ「catalog/product_list」を使用しても、階層化されたナビゲーションが表示されません。
- 重要なコア クラスをオーバーライドする拡張機能はありません。
- また、独自のモジュールを作成して、たとえば「mycatalog」の下にリストしようとしました。これにより、まったく同じ問題が発生します。
これは、CMS ページに製品リストを含めようとしたことに関係しているように感じますが、正確な問題を追跡することはできませんでした.
これに関するヘルプは非常に高く評価されます。
ruby-on-rails - Sphinx ファセット検索の実装例を考えていますか?
リポジトリ型のRails3サイトをまとめています。Thinking Sphinx をインストールして自分のサイトで作業していlocalhost:3000/articles?search=test&page=2
ます。
Rails (および一般的な Web 開発者) は初めてです。これのモデルとコントローラーの側面を管理できると思いますが、これまでのビューには困惑しています。検索インターフェイスとして使用したいサイドバーがあります。私が最も近いものはこれです(サイドバーのパーシャルの一部としてレンダリングされます):
検索メソッドは私の article#index コントローラーにあります。ブラウザーがそのページを指している ( としてルーティングされている) ときにテストすると、/articles
期待どおりに動作しますが、この奇妙な url: localhost:3000/articles?utf8=✓&search=test&commit=Search
. ブラウザーが最初にルート パスをポイントしたときは、何も起こりません。
したがって、これらが私が対処する必要がある主な問題だと思います。
- 編集 - 解決済み (下記参照)
- 検索メソッドを独自のコントローラーに移動する必要がありますか、それとも記事コントローラーの一部にする必要がありますか? 今のところ、Article がインデックスされる唯一のモデルになります。
- 編集 - 解決済み (下記参照)
- Rails 3 と Thinking Sphinx を使用したファセット検索ビューの良いサンプル コードはありますか? 私が言ったように、私は初心者のようなもので、ビューの実装をざっと見たドキュメントに少し当惑しています。ただし、コードが十分に完成している限り、コードを読んで解釈することはかなり得意です。
前もって感謝します!
解決済み:
検索を試みる前に「検索」ボタンで index メソッドを呼び出すにはどうすればよいですか? (私はこれを に置き換えること
@search
で解決しましたarticles_path
)。以前
will_paginate
は問題がありましたが、現在は機能しているようです。
database - ファセット検索とは何ですか?
全文検索のコンテキストでのファセット検索とは正確には何ですか?
ウィキペディアからも読んだのですが、その使い方やメリットがよくわかりませんでした。コミュニティがいくつかの良い例で答え/拡大し、説明できることを願っています。
注:私たちはさまざまなオープンソースの全文検索エンジンを評価/調査しているところですが、ほとんどの場合、ファセット検索が機能の1つとしてリストされています。だから私はこれが私たちのアプリケーション要件に役立つかどうかを評価しようとしています。
django - Django Haystack / Solr:モデルのファセットですが、ForeignKeyフィールドからの結果のみを表示します
私はDjangoに次のような2つのモデルを持っています(擬似コードで)
1:Mがあります。1つの薬には多くの用途があります。
のフィールドをファセットする必要がありますが、関連するオブジェクトApplication
のみを表示します。Medicine
SQLのDISTINCTのようなもの。
干し草の山でこれを達成するための最も簡単な方法は何でしょうか?
私はのために作るSearchIndex
のですMedicine
かApplication
?を作成する場合SearchIndex
、重複するオブジェクトApplication
を検出/フィルタリングするにはどうすればよいですか?Medicine
PS:Solrの開発リリースにフィールド折りたたみ機能があることは知っていますが、それは巨大なデータベースであり、パフォーマンスが重要であるため、これは避けたいと思います。
javascript - jqueryの部分的な展開と折りたたみ
jqueryの「contains」セレクターを使用して、divがクリックされたときに何をするかを決定しています...ファセットナビゲーションのセクションを展開または折りたたむ必要があります。
ただし、「contains」セレクターは、DOMが最初にロードされたときにdivのコンテンツのみを表示し、以前のjquery呼び出しによってスワップアウトされた新しいコンテンツを表示していないようです。
私はここでほとんど機能しているバージョンを持っています...トップセクションを正しく折りたたむには少し押す必要があります:http://jsfiddle.net/brianadkins/nAabP/
HTML:
Javascript:
lucene - Lucene/Solr はどのようにして多分野 / ファセット検索で高いパフォーマンスを実現していますか?
環境
これは、主に Lucene (またはおそらく Solr) の内部に関する質問です。主なトピックはファセット検索です。この検索では、オブジェクトの複数の独立した次元 (ファセット) (車のサイズ、速度、価格など) に沿って検索を行うことができます。
リレーショナル データベースで実装する場合、ファセットは任意の順序で検索できるため、多数のファセットに対してマルチフィールド インデックスは役に立ちません。耐えられない。
Solr は、ファセット検索タスクにうまく対処するように宣伝されています。私が正しく考えると、Lucene が (おそらく) マルチフィールド クエリ (ドキュメントのフィールドがオブジェクトのファセットに関連する場合) でうまく機能する必要があります。
質問
Luceneの逆インデックスはリレーショナル データベースに格納でき、一致するドキュメントの交差を自然に取得することも、単一フィールド インデックスを使用する RDBMS で簡単に実現できます。
したがって、Lucene には、逆インデックスに基づいて一致するドキュメントの交差を取得するだけでなく、複数フィールドのクエリに対する高度な手法がいくつかあると思われます。
問題は、このテクニック/トリックは何ですか? より広く: Lucene/Solr が RDBMS よりも理論的に優れたファセット検索パフォーマンスを達成できるのはなぜですか?
注: 私の最初の推測では、Lucene は、ドキュメント フィールドから構築されたベクトル空間をディメンションとして分割するために何らかの空間分割方法を使用しますが、Lucene は純粋にベクトル空間ベースではないことを理解しています。
solr - 生データと複数のファセット値の結合を使用したSOLRクエリ
ファセット検索用のSOLRクエリを作成していますが、フィールドに引用符やその他の不正な文字が含まれている可能性があるため、raw演算子を使用してクエリを作成しています。ただし、ユーザーが複数のファセット値を選択した場合、クエリでORを使用する方法がわかりません。
たとえば、Nikeのメーカーの結果は次のように返されます。
以下は、アディダスのメーカーのみの結果を返します。
そして、以下は結果を返しません:
これを行う方法はありますか?
faceted-search - solrjを使用してfacet.queryの結果のみを取得するにはどうすればよいですか?
solrjを使用してファセットクエリの結果を取得しようとしていますが、ファセットクエリを追加するかどうかは問題ではないようです。とにかく同じドキュメントリストを取得します。
したがって、このクエリは同じドキュメントリストを返します...
...このクエリで
唯一の違いは、ファセットクエリに一致するドキュメントの数を取得できることです。response.getFacetQuery();
私はそれが次のように機能することを期待していました
何か案は?
ありがとう。
ちなみに私はSolrバージョン3.1.0とsolr-core-3.1.0を使用しています