这些技术之间的核心架构差异是什么?
另外,哪些用例通常更适合每种用例?
随着基于文档的数据库的NoSQL运动的增长,我最近看了MongoDB.我注意到与如何将项目视为"文档"有惊人的相似之处,就像Lucene(和Solr的用户)一样.
所以,问题是:你为什么要使用NoSQL(MongoDB,Cassandra,CouchDB等)而不是Lucene(或Solr)作为你的"数据库"?
我(我相信其他人)在答案中寻找的是对它们的深入比较.让我们一起跳过关系数据库讨论,因为它们有不同的用途.
Lucene提供了一些重要的优势,例如强大的搜索和重量系统.更不用说Solr的一个方面(Solr很快被整合到Lucene中,是的!).您可以使用Lucene文档来存储ID,并像MongoDB一样访问文档.将它与Solr混合,您现在可以获得基于WebService的负载平衡解决方案.
在讨论MongoDB的类似数据存储和可伸缩性时,您甚至可以对Velocity或MemCached等进程外缓存提供程序进行比较.
MongoDB的限制让我想起了使用MemCached,但我可以使用Microsoft的Velocity,并且对MongoDB有更多的分组和列表收集功能(我认为).无法比内存中的缓存数据更快或更具可扩展性.甚至Lucene都有一个内存提供商.
MongoDB(以及其他)确实具有一些优势,例如API的易用性.新建文档,创建ID并存储它.完成.好,易于.
我正在寻找具有以下属性的独立全文搜索服务器:
我发现具有这些属性的替代方案是:
我的问题:
我知道Lucene和Solr是两个不同的Apache项目,它们可以协同工作,但我不明白每个项目的目标是什么.
据我所知,直到现在,Lucene用于创建搜索索引,Solr使用此索引执行搜索.我是对的还是这是一种完全不同的方法?
我有一个大的solr索引,我注意到一些字段没有正确更新(索引是动态的).
这导致一些字段具有空的"id"字段.
我尝试了这些查询,但它们不起作用:
id:''
id:NULL
id:null
id:""
id:
id:['' TO *]
Run Code Online (Sandbox Code Playgroud)
有没有办法查询空字段?
谢谢
如何从solr
命令中删除所有数据?我们正在使用solr
与lily
和hbase
.
如何从hbase和solr中删除数据?
http://lucene.apache.org/solr/4_10_0/tutorial.html#Deleting+Data
我正在处理类似于以下的solr查询:
((myField:superneat AND myOtherField:somethingElse) OR NOT myField:superneat)
Run Code Online (Sandbox Code Playgroud)
运行此时,不会返回任何结果.使用OR NOT任一侧的标准会返回我期望的结果 - 它们只是不能很好地协同工作.在myField匹配superneat的情况下,我还打算确保将myOtherField设置为somethingElse,但如果myField不是superneat,则将其包含在结果中.
有人能解释为什么solr没有返回这种查询的结果吗?是否应该以某种方式重构查询 - 或者是否有不同的方法可以使用solr来实现所需的结果?
我是Apache Solr的新手.即使在阅读了文档部分之后,我发现很难清楚地理解multiValued
字段类型属性的功能和用法.
内部Solr做什么/处理/处理标记为multiValued的字段 ?
是什么在索引中的Solr的字段之间的区别是多值和那些没有?
有人可以用一些好的例子解释一下吗?
Doc说:
多值= TRUE | FALSE
如果此字段可能包含每个文档的多个值,即它是否可以在文档中多次出现,则为True
我有一个分类广告网站.用户可以投放广告,编辑广告,查看广告等.
每当用户放置广告时,我都会向Solr添加文档.但是,我不知道何时提交它.提交减慢了我的阅读速度.
我该怎么办?每12小时左右自动提交一次?
另外,我应该如何进行优化?