我有一个 C# 类,它有一个 ObjectId 类型的 id 字段:
[BsonId]
[SolrUniqueKey("id")]
public ObjectId Id { get; set; }
Run Code Online (Sandbox Code Playgroud)
在 Solr 中,模式将 id 定义为:
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
Run Code Online (Sandbox Code Playgroud)
当尝试从 Solr 中提取对象时,它会失败,因为它无法将字符串 id 转换为 MongoDB ObjectId。有没有人可以在不更改 SolrNet 源的情况下轻松解决此问题?
到目前为止,试图让 Nutch + Solr 工作是徒劳的。我很难理解如何使用nutchand来处理这件事solr。我遵循了我可以在互联网上找到的所有教程,其中大部分是针对旧版本的,但我仍然无法使它们中的任何一个工作。此时此刻,我正在遵循本指南
我已经将nutch 2.2.1、sorl 4.3.1、hbase 0.90.4 解压到我的 xampp 本地服务器上的目录(没有一个教程说我应该将它们解压到哪里,所以我假设在本地服务器上)。
我Cygwin在 Windows 7 上使用。 JAVA_HOME 指向/cygdrive/c/PROGRA~1/java/jdk1.8.0_05
我卡在了Configure HBase一步。按照教程的指示,我的配置/hbase-0.90.4/conf/hbase-site.xml如下:
<property>
<name>hbase.rootdir</name>
<value>file:///C:/xampp/htdocs/trynutch/hbase</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>C:/xampp/htdocs/trynutch/zookeeper</value>
</property>
Run Code Online (Sandbox Code Playgroud)
根据此后的教程,我应该能够运行以下命令:
$ ./trynutch/hbase/bin/start_hbase.sh
Run Code Online (Sandbox Code Playgroud)
当我在 cygwin 终端中运行它时,它给出了一个错误:
DM@comp ~
$ cd C:/xampp/htdocs/trynutch/hbase-0.90.4/bin
DM@comp /cygdrive/c/xampp/htdocs/trynutch/hbase-0.90.4/bin
$ start_hbase.sh
-bash: start_hbase.sh: command not found
Run Code Online (Sandbox Code Playgroud)
我很感激任何信息。
我的问题很简单:我们可以在 solr 方面进行限制。是否可以在构面结果中设置起点?
就像我们在普通查询中所做的一样:->
query.setRows(5);
query.setStart(3);
Run Code Online (Sandbox Code Playgroud)
我希望我的分面结果从第 4 点开始,而不是从第一个结果开始。
在相关说明中,这可以在使用组时完成。我可以通过在查询中传递起点来选择我想要的组。但这对于facets来说似乎是不可能的。无法使用组,因为没有按 numfound 功能排序。
有没有办法构造一个查询,以便它可以识别/返回特定字段重复的文档。我正在寻找的是 SQL 中的等效项:
SELECT content, count(*) FROM documents GROUP BY content ORDER BY count(*) DESC
Run Code Online (Sandbox Code Playgroud)
基本上,给我内容相同的文件。我发现的所有内容都讨论了如何在插入时丢弃重复项,或者如何在搜索结果中删除它们。我尝试使用FieldCollapsing,但出现以下错误:
"error": {
"msg": "can not use FieldCache on a field which is neither indexed nor has doc values: content",
"code": 400
}
Run Code Online (Sandbox Code Playgroud)
基于错误,我认为它失败了,因为content没有编入索引。我尝试使用另一个索引而不是多值的字段来进行分组,该字段存储文档 URL,但我无法对结果组进行正面或反面,尤其是groupValue. 我可以尝试创建一个被索引的复制字段,但我不确定这是否会给我我正在寻找的东西,我的爬虫需要超过 24 小时才能爬行。
我正在使用 Apache Solr 并使用以下查询进行搜索
http://Siteurl:8080/solr/metro/select?q=*:*&rows=0&wt=json&indent=true&facet=true&facet.field=Make
Run Code Online (Sandbox Code Playgroud)
但结果让我们假设我在制造领域有“福特嘉年华”。我得到两个结果而不是一个,如下所示:
Ford => 21
Fiesta => 21
Run Code Online (Sandbox Code Playgroud)
它是按空间分隔字段。
我想要它像
Ford Fiesta => 21
Run Code Online (Sandbox Code Playgroud)
请让我知道这样做的有效方法。
谢谢
我正在使用 sunspot/solr 为我的 Rails 应用程序构建全文搜索。前几次我能够运行bundle exec rake sunspot:reindex,但后来收到此错误:
RSolr::Error::Http: RSolr::Error::Http - 400 Bad Request
Error: {'responseHeader'=>{'status'=>400,'QTime'=>1},'error'=>{'msg'=>'Exception writing document id Product 1 to the index; possible analysis error.','code'=>400}}
URI: http://localhost:8982/solr/development/update?wt=ruby
Request Headers: {"Content-Type"=>"text/xml"}
Request Data: "<?xml version=\"1.0\" encoding=\"UTF-8\"?><add><doc><field name=\"id\">Product 1</field><field name=\"type\">Product</field><field name=\"type\">ActiveRecord::Base</field><field name=\"class_name\">Product</field><field boost=\"5\" name=\"code_textp\">Macbook pro 123</field><field name=\"code_textp\"><p>hahahahahhhahahahahhhahahahahhhahahahahhhahahahahhhahahahahhhahahahahhhahahahahh</p></field></doc><doc><field name=\"id\">Product 2</field><field name=\"type\">Product</field><field name=\"type\">ActiveRecord::Base</field><field name=\"class_name\">Product</field><field boost=\"5\" name=\"code_textp\">test product</field><field name=\"code_textp\"><p>dfdsfsdfdsfsfsdfsdfdsf</p></field></doc><doc><field name=\"id\">Product 3</field><field name=\"type\">Product</field><field name=\"type\">ActiveRecord::Base</field><field name=\"class_name\">Product</field><field boost=\"5\" name=\"code_textp\">Macbook used</field><field name=\"code_textp\"><p>it is refurebishedit is refurebishedit is refurebishedit is refurebishedit is refurebishedit is refurebishedit is refurebished</p></field></doc></add>"
Backtrace: …Run Code Online (Sandbox Code Playgroud) 我跟着https://github.com/gsf/node-solr,安装了 node-solr
npm install solr
Run Code Online (Sandbox Code Playgroud)
那么如何在8080端口连接solr呢?
我有两个核心:
核心 1:BookID、地点、标题、作者、发布日期
核心 2:BookID、Text、Referenecs、Size、LastUpdated
http://localhost:8983/solr/core1/select?fl=Title,%20Venue,%20Authors,%20PubDate&q= {!join%20from=PaperID%20to=fileName%20fromIndex=core2%20}size:15870
上述查询返回零结果为:
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">0</int>
<lst name="params">
<str name="q">{!join from=PaperID to=fileName fromIndex=PapersIndex }size:15870</str>
<str name="fl">Title, Venue</str>
</lst>
</lst>
<result name="response" numFound="0" start="0" />
</response>
Run Code Online (Sandbox Code Playgroud)
我不知道 solr join 是如何工作的。为什么它给出零结果?
我必须执行以下操作:
Solr 7.4.0 和 Zookeeper 版本: 3.4.12
我做了以下事情:
设置动物园管理员:
./zkServer.sh start设置 Solr:
使用以下命令启动 Solr:
./solr start -cloud -s /home/demo/LocalFolder/Downloads/SolrHome -p 8987 -z localhost:2181
尝试使用以下方式在 Zookeeper 中上传配置:
./solr create -c mycollection -d /media/sf_VM/Dump/conf
它给了我一个例外:
Caused by: javax.servlet.UnavailableException: Error processing the request. CoreContainer is either not initialized or shutting down.
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:341)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:323)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1634)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
at …Run Code Online (Sandbox Code Playgroud) 我想知道尝试搜索数据的利弊(基本上是对一组有限的字段进行全文搜索)。
我的数据目前在 DynamoDB 中,我意识到这不太适合全文搜索。有没有办法在 DynamoDB 中进行全文搜索?这样做有什么好处和坏处?
我还可以使用搜索集群(如 ElasticSearch)。您不使用搜索集群的任何原因?
还有其他方法可以进行全文搜索吗?其他解决方案?