问题标签 [solandra]

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.

0 投票
1 回答
11985 浏览

solr - Solr - 仅匹配确切的短语

我对短语查询有疑问。

查询输入:“to many results”

我只想拥有包含完全匹配短语的文本:

  1. “word word word to many results word word word”

  2. “词词多结果词”

但问题是:

  1. “word word word to many results word word word”

  2. “词词多结果词”

  3. “word many results word”——我不想在我的结果中出现这个

架构:

感谢帮助

0 投票
0 回答
213 浏览

solrj - 为什么 Solandra 2 节点集群的索引性能比单节点集群差?

在使用 Solrj 的索引测试中,2 个 Solandra 节点的性能比 1 个差。

  • 每个节点是-Xms1G -Xmx12G
  • 单一索引;索引约为 10M 文档;每个文档的大小约为 4KB,具有唯一的 ID。我在单个节点上建立了大约 6M 的索引,然后向环中添加了一个新节点并使用“移动”将新令牌分配给余额。
  • 使用所有 Solandra 默认配置 - 例如:solandra.maximum.docs.per.shard = 1048576, solandra.index.id.reserve.size = 16384, solandra.shards.at.once = 4
  • Nodetool环显示:node1 Up Normal 35.11 GB 50.00% 0,node2 Up Normal 54.5 GB 50.00% 85070591730234615865843651857942052864
  • 索引性能:单节点:166 docs/s 2 个节点(发送到单个节点):111 docs/s 2 个节点(同时发送到两个节点):55 docs/s(见下文注释)

(注意)我发送了 100K 的批次(一个批次正在构建 SolrInputDocuments 列表 + 整个列表上的提交),当我切换到 10K 的批次时,性能提高到 98 docs/s

一些问题:

  • 一般来说,对于索引和搜索,我怎样才能让 Solandra 在超过 1 个节点的情况下表现更好?
  • 为什么使用 2 个节点而不是 1 个节点时索引性能会下降?我什么时候应该期待性能升级?
  • 使用 Solandra 索引文档的推荐方法是什么 - 发送到环中的单个节点或多个节点?
  • 使用 Solandra 查询的推荐方式是什么——向单个节点或多个节点发送查询请求?
  • 将所有查询请求发送到 2 节点集群中的单个节点的性能与单节点集群大致相同 - 任何想法为什么?
0 投票
4 回答
17144 浏览

solr - 卡桑德拉还是 SOLR?是什么为前端读取查询提供了更好的性能?

我的团队要求我在 Cassandra 和 SOLR 之间进行选择,以便更快地响应@前端查询。我告诉他们 Cassandra 是 NOSQL 数据库,而 SOLR 是索引。但是后来他们说我们可以将完整的数据库推送到 SOLR(比如将 SOLR 用作数据库),或者我们可以将 Cassandra 与 SOLR 一起使用。都糊涂了。

我们正在处理的数据量就像 10 亿个分布在 4 个 MySQL 表中(使用连接获取),我们只从网站获得读取查询。我们不需要全文搜索

我认为 SOLR 不能轻易被击败的是它的全文搜索功能,但我们不需要它。

那么,SOLR 还有什么 Cassandra 无法提供的,Cassandra 有什么可以在我们的特定情况下替代 SOLR 的呢?

换句话说,谁的表现会更好?卡桑德拉一个人?SOLR 作为一个单独的数据库?还是两者一起?最重要的是为什么和为什么不呢?

对我来说,在我的下一次团队会议上用优势支持我的选择真的很重要,就好像为什么一个比另一个更好一样。

并提前感谢。

编辑:

  • SOLANDRA不是一个选择,因为我猜它没有那么成熟,也不再需要维护
  • DataStax不是一个选项,因为 SOLR 功能仅在企业版中提供
0 投票
0 回答
189 浏览

java - Solandra 缺少日期范围查询的结果

我正在使用 Solandra 搜索某个日期之后的事件。为此,我索引自纪元以来的毫秒(作为长数据类型)并使用如下范围搜索:开始:[1348992000000 TO *]

很多时候这工作正常,但有时会出现奇怪的错误行为,即在日期 X 之后,没有任何东西被带回,但在日期 Y 之后(其中 X < Y < 日期)它被返回。

在玩了很多游戏之后,我设法想出了一些我可以持续复制的东西(至少在我这边)。以下是重新创建的步骤:

1)创建以下架构(如果您想要整个 xml 文件,请告诉我,我会发布):

2) 使用 SolrJ 运行以下 Java 程序:

3) 运行以下查询以查看没有返回结果:

  • q=开始:[1348992000000 TO *]

    /li>

4) 运行以下查询以查看返回结果:

  • q=开始:[1349049600177 TO *]

    /li>

注意事项:

  • 删除 commit() 似乎修复了这个特定的示例,但是当在其他时间省略提交时,我目睹了它。据我从 Jake Luciani 所写的评论中了解到,commit() 应该没有任何效果,所以我很困惑为什么这种变化会一直影响结果。

  • 它似乎只在我索引了多个事件时才会发生(但不能确定,因为问题似乎在最随机的时间出现)。

  • 为什么我不使用数据类型日期?我最初是这样做的,但认为特定的数据类型导致了这个问题,所以切换了。尝试过数据类型 date、long、slong、string 和 text。所有都表现出相同的零星缺失结果行为。另请注意,切换到不同的数据类型可能会修复特定示例,但在其他示例中会很明显。

  • 已尝试直接从 github 使用 Solandra 代码作为现成的 Solandra 以及嵌入到最新的 Cassandra 发行版中。

这让我发疯,所以任何帮助或建议将不胜感激!

0 投票
1 回答
870 浏览

caching - 缓存在 Cassandra 中不起作用

签入 Opscenter 或 cfstats 时,我似乎没有启用任何缓存。我在 Debian 上使用 Solandra 运行 Cassandra 1.1.7。我在 cassandra.yaml 中设置了所需的全局选项:

列族的创建如下:

Opscenter 未显示缓存图上的可用数据,CFSTATS 未显示任何与缓存相关的字段:

任何帮助或建议表示赞赏。

山姆

0 投票
1 回答
517 浏览

solr - 无法对 Solr 进行任何查询

我正在尝试设置 Solandra (Solr + Cassandra),并使用 SolrJ 库来使用它。我设法使用 SolrJ 设置了所有内容并添加了一些文档,但是当我尝试进行查询时它失败了。我试图通过 url 执行查询,但它也失败了。我用了:

在我的应用程序中,我使用了以下代码:

这是我得到的堆栈跟踪:

org.apache.solr.common.SolrException: java.lang.StackOverflowError at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:281) at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase .java:129) 在 org.apache.solr.core.SolrCore.execute(SolrCore.java:1368) 在 org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:356) 在 solandra.SolandraDispatchFilter.execute( SolandraDispatchFilter.java:171) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:252) at solandra.SolandraDispatchFilter.doFilter(SolandraDispatchFilter.java:137) at org.mortbay.jetty.servlet.ServletHandler$CachedChain .doFilter(ServletHandler.java:1212) 在 org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399) 在 org.mortbay.jetty.servlet。org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766) 上 org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 上的 SessionHandler.handle(SessionHandler.java:182) .mortbay.jetty.Server.handle(Server.java:326) 在 org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) 在 org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928 ) 在 org.mortbay.jetty.HttpConnection.handle(HttpConnection.java: org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) 404) 在 org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228) 在 org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) 引起:java.lang.StackOverflowError在爪哇。net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:150) at java.net.SocketInputStream.read(SocketInputStream.java:121) at java.io.BufferedInputStream.fill(BufferedInputStream. java:235) 在 java.io.BufferedInputStream.read(BufferedInputStream.java:254) 在 org.apache.commons.httpclient.HttpConnection.isStale(HttpConnection.java:506) 在 org.apache.commons.httpclient.HttpConnection.closeIfStale (HttpConnection.java:431) 在 org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.closeIfStale(MultiThreadedHttpConnectionManager.java:1313) 在 org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:382) 在 org. org.apache 上的 apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)。commons.httpclient.HttpClient.executeMethod(HttpClient.java:397) at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323) at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request( CommonsHttpSolrServer.java:422) 在 org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:244) 在 org.apache.solr.handler.component.HttpCommComponent$1.call(SearchHandler.java:421 ) 在 org.apache.solr.handler.component.HttpCommComponent$1.call(SearchHandler.java:393) 在 java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 在 java.util.concurrent.FutureTask .run(FutureTask.java:166) 在 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 在 java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 在 java. util.concurrent.FutureTask。在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 在 java.lang.Thread 运行(FutureTask.java:166) .run(Thread.java:722)

难道是我错过了 schema.xml 中的某些内容?这是它的样子:

0 投票
2 回答
1007 浏览

database - cassandra 的替代 Solandra

有人知道 Cassandra 中 Solandra 的替代方案吗?

我不能使用“like”子句,就我而言,我会一直使用。

谢谢。

0 投票
1 回答
131 浏览

java - 如何执行 Solandra

我将使用 Solandra。但是当我运行 solandra.bat 文件时,我给了我这样的错误

启动卡桑德拉

服务器错误:无法找到或加载主类 solandra.SolandraServer

在此处输入图像描述

0 投票
1 回答
147 浏览

solr - 使用 solandra 进行全文搜索

我已经有一个 cassandra 数据库,其中有一列带有文本,另一列带有文档 ID。出于某种分析目的,我想用一些短语搜索文本列。我决定和索兰德拉一起去。谁能建议我如何将 solandra 与现有的 cassandra 数据库集成?任何指向可靠文档的指针也会对我有所帮助。