問題タブ [solr-query-syntax]
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.
search - Solr 条件付きクエリ フィールド (qf)
特定の条件に基づいてSolrでクエリフィールドを定義することは可能ですか? たとえば、テキスト、タイトル、製品の 3 つのフィールドがあります。solr 構成定義:
ここで探しているのは、特定の条件が満たされた場合にのみ、検索可能なフィールドとして「製品」を含めることです。たとえば、作成者が「Tom」の場合は、製品も検索します。
edismax を使用してクエリ時にそれを行う方法はありますか?
別の方法として、インデックス時に製品情報をドキュメントのテキストまたはタイトル (著者=Tom) に追加して、検索できるようにすることもできます。しかし、私は可能であればこれを避けようとしています。
任意のポインタをいただければ幸いです。
-ありがとう
sorting - Solr で複数のフィールドを特定の順序で並べ替える
したがって、Solr 応答を次のフィールドで並べ替えます。
- published_year (降順)
- シリーズ番号 (昇順)
- status_color
問題はstatus_color
、次の値でソートする必要があることです(アルファベット順ではありません)。
- "緑"
- "黄色"
- "赤"
このフィールドには、これらの値の 1 つだけを含めることができます。
結果をコードで処理するのではなく、Solr クエリでこれを行う方法があることを願っています。数十万のドキュメントがあるため、実際にはオプションではありません。
どんな助けでも大歓迎です。
java - Solr : Boost 関数クエリに条件を追加する方法
Solr ブースト関数クエリ内で条件を使用できるかどうかを確認しようとしています。現在、次の関数を使用して、いいねデータをブーストしています。
私がやりたいのは、いくつかの条件に基づいて「いいね」にブーストを適用することです。例えば
Source="A" または "B" または "C" の場合、sum(Likes,4)
else-if Source="D" then sum(Likes,3)
そうでなければ合計(いいね、2)。
「if」関数は単一の条件で機能しますが、if-else 条件に対処する方法がわかりません。
パフォーマンスのオーバーヘッドが原因で、ネストされたクエリを回避しようとしています。
任意のポインタをいただければ幸いです。
-ありがとう、
シャミク
solr - 属性の値がリスト内にあるかどうかにかかわらず、Solr の結果をブーストします。
次のようなクエリがあります。
user_id_i:(123 OR 222 OR 512 OR 932) の結果をブーストする必要があります。
=> __val_:"if(user_id_i:(123 OR 222 OR 512 OR 932), 100, 0)" のようなもの
しかし明らかに、その特定の質問に対して true または false を返す関数が必要です。
solr - Solr のファセット範囲クエリ。フィールドのギャップ 1,2,3,10 を解析できません
(solr を使用して) データをクエリし、キャッスルイドの粒度を取得しようとしています。
Solr 4.10のローカルで実行中のインスタンスがあります。
懇願して、範囲ファセットのsolr wikiのような単純なクエリを作成しました: 範囲ファセット のSolrの例
次のクエリを試しました。
このクエリの URL:
私が得ているエラーは次のとおりです。
「フィールドのギャップ 1,2,3,10 を解析できません: Castleid」
私は何か間違ったことをしていますか、それともこの方法で範囲を作成することは不可能ですか?
solr - solr クエリ: n 個の単語のうち x 個が一致しました
おそらく私は単語を持っており(例としてそれらを4
呼びましょう)、これらに一致するように検索したいと思います。次のように、すべての順列を使用してクエリを作成できます。a,b,c
d
solr
3
これは機能し、これらの 4 つの単語のうち 3 つを含むドキュメントと一致します。
10
しかし、単語があり、そのうちの 3 つを一致させる必要があると、事態は混乱します。必要な順列の数は指数関数的に増加します。
明らかに、クエリの複雑さのおかげで、solr が機能しなくなります (応答が遅くなりすぎます)。
このようなものに使用できる特別なコマンドがあるかどうかを調べるために、インターネット全体を検索しました。何も見つかりませんでした。このようなことを達成するためにできるトリックがあるかどうか疑問に思っています。
indexing - Solr 結果のグループ化エラー。フィールド 'vendor' の予期しない docvalues タイプ SORTED_SET (expected=SORTED)
私はこのようなsolrスキーマを持っています
スキーマを照会していますが、結果は次のようになります
結果をベンダーフィールドでグループ化したいので、このようなクエリを投稿します
デバッグ フィールドでこれに対するエラーが発生しています。
"error":{ "msg":"org.apache.solr.client.solrj.SolrServerException: このリクエストを処理できるライブ SolrServers がありません:[ http://10.192.17.110:7574/solr/gettingstarted_shard2_replica1 , http:// 10.192.17.110:8983/solr/gettingstarted_shard1_replica2、http://10.192.17.110:7574/solr/gettingstarted_shard1_replica1、http://10.192.17.110:8983/solr/gettingstarted_shard2_replica2]、"trace"、"trace"sol.apache.apache.apache.org . _ _ _ _ .common.SolrException: org.apache.solr.client.solrj.SolrServerException: この要求を処理できるライブ SolrServers がありません:[ http://10.192.17.110:7574/solr/gettingstarted_shard2_replica1、 http://10.192.17.110 :8983/solr/gettingstarted_shard1_replica2 、 http://10.192.17.110:7574/solr/gettingstarted_shard1_replica1、http://10.192.17.110:8983/solr/gettingstarted_shard2_replica2 ] _ \n\tat org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:342)\n\tat org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:143)\n\tat org.apache.solr.core.SolrCore.execute(SolrCore.java:1984)\n\tat org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:829)\n\tat org.apache.solr. servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:446)\n\tat org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:220)\n\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain. doFilter(ServletHandler.java:1419)\n\tat org.eclipse.jetty.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:247)\n\tat org.eclipse.jetty.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java: 210)\n\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)\n\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455)\n\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler. java:137)\n\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)\n\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) \n\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075)\n\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384)\n\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)\n\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009)\n\tat org. eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)\n\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)\n\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)\n\tat org.eclipse.jetty.server.handler.HandlerWrapper.ハンドル (HandlerWrapper.java:116)\n\tat org.eclipse.jetty.server.Server.handle(Server.java:368)\n\tat org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java: 489)\n\tat org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53)\n\tat org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:942)\n\tat org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1004)\n\tat org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:640)\n\tat org.eclipse. jetty.http.HttpParser。parseAvailable(HttpParser.java:235)\n\tat org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72)\n\tat org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run( SocketConnector.java:264)\n\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)\n\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool .java:543)\n\tat java.lang.Thread.run(Thread.java:745)\n原因: org.apache.solr.client.solrj.SolrServerException: このリクエストを処理できるライブ SolrServers がありません:[QueuedThreadPool.runJob(QueuedThreadPool.java:608)\n\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)\n\tat java.lang.Thread.run(Thread.java :745)\n原因: org.apache.solr.client.solrj.SolrServerException: このリクエストを処理できるライブ SolrServers がありません:[QueuedThreadPool.runJob(QueuedThreadPool.java:608)\n\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)\n\tat java.lang.Thread.run(Thread.java :745)\n原因: org.apache.solr.client.solrj.SolrServerException: このリクエストを処理できるライブ SolrServers がありません:[http://10.192.17.110:7574/solr/gettingstarted_shard2_replica1、http://10.192.17.110:8983/solr/gettingstarted_shard1_replica2、http://10.192.17.110:7574/solr/gettingstarted_shard1_replica1、http://10.1911 : _ _ _ _ _ 8983/solr/gettingstarted_shard2_replica2]\n\tat org.apache.solr.client.solrj.impl.LBHttpSolrClient.request(LBHttpSolrClient.java:349)\n\tat org.apache.solr.handler.component.HttpShardHandlerFactory.makeLoadBalancedRequest(HttpShardHandlerFactory.java:226) \n\tat org.apache.solr.handler.component.HttpShardHandler$1.call(HttpShardHandler.java:224)\n\tat org.apache.solr.handler.component.HttpShardHandler$1.call(HttpShardHandler.java:184) \n\tat java.util.concurrent.FutureTask.run(FutureTask.java:262)\n\tat java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)\n\tat java.util. concurrent.FutureTask.run(FutureTask.java:262)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor. java:615)\n\t... 1 つ以上\n原因: org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException: サーバーからのエラー http://10.192.17.110:8983/solr/gettingstarted_shard1_replica2 : フィールド「vendor」の予期しない docvalues タイプ SORTED_SET (expected=SORTED)。docvalues で UninvertingReader またはインデックスを使用してください。 .request(HttpSolrClient.java:233)\n\tat org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:225)\n\tat org.apache.solr.client.solrj.impl .LBHttpSolrClient.doRequest(LBHttpSolrClient.java:370)\n\tat org.apache.solr.client.solrj.impl.LBHttpSolrClient.request(LBHttpSolrClient.java:338)\n\t... 9 つ以上\n", "コード":500}}
私を助けてください。
solr - Solrコレクションからすべてのフィールドを取得するには?
10 個のノードを持つ Solr クラスターがあると想像してみてください。コレクション名 "Test" (numShards=10, replicationFactor=1) を作成し、2 つまたは 3 つの異なるスキーマ (例: doc1(id, field1, field2), doc2(id, field3, field4), doc3( id, field1, field5),...) を「テスト」に入力します。
shard1にはフィールドid、field1、field3、field4、field5があるなど、任意のシャードのすべてのフィールドを取得できます。shard2にはフィールドid、field2、field3、field5がありますが、 「Test」コレクションのすべてのフィールドを取得する方法がわかりません(この場合は、id、field1、field2、field3、field4、field5 である必要があります) 。 shard1 からshard10 までのフィールドを取得し、結果を結合して重複を削除します。Solr コレクションからすべてのフィールドを取得する別の方法/より良い方法はありますか?
ありがとうございました。
solr - 人気に基づいて DBpedia で検索することはできますか?
さまざまなフィールドのすべての DBpedia レコードを使用してクエリを実行します。
データはに保存されsolr
、クエリごとにすべての人のレコードを取得しました。
DBpedia のレコードを人気順で取得する方法はありますか?