在Solr 4中,我看到我们在/select请求处理程序中配置了默认字段"df" :
<requestHandler name="/select" class="solr.SearchHandler">
<!-- default values for query parameters can be specified, these
will be overridden by parameters in the request
-->
<lst name="defaults">
<str name="echoParams">explicit</str>
<int name="rows">10</int>
<str name="df">id</str>
Run Code Online (Sandbox Code Playgroud)
但是id我们是唯一的文档字段,因此所有查询都默认为"id:my_query",它总是返回0结果.
如何定义默认情况下应查询哪些字段?
这是从v3到v4的升级,这部分似乎已经被打破了.
我正在努力阅读和理解Solr 4中有关空间搜索的文档:
http://wiki.apache.org/solr/SolrAdaptersForLuceneSpatial4
但是我很难找到一个简单的答案:在Solr 4中按距离对结果进行排序的理想方法是什么?
我的文档集中有两个可用的位置字段:
geo是一个location_rpt定义为的字段:
<fieldType name="location_rpt" class="solr.SpatialRecursivePrefixTreeFieldType"
geo="true" distErrPct="0.025" maxDistErr="0.000009" units="degrees" />
Run Code Online (Sandbox Code Playgroud)
并且ll位置字段定义为:
<fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/>
Run Code Online (Sandbox Code Playgroud)
我在上面引用的文档中看到的示例引用了交叉圈和各种事情似乎没有必要,如果我有兴趣做的是在我的查询中提供一个起点(lat/lng),并得到一个按距离排序的结果列表.
更新:接受的答案提供了一个在Solr 3和4中有效的解决方案.David Smiley 对该答案的评论为那些感兴趣的人提供了严格的"Solr 4"排序方式.
我需要索引一个被调用的字段lang,它将包含诸如en或者ar
我需要它的类型的值,enum是否有办法在schema.xml文件中执行它?
或者我应该只使用普通的文本字段?
以下查询适用于我
http://[]:8983/solr/vault/select?q=VersionComments%3AWhite
Run Code Online (Sandbox Code Playgroud)
返回版本注释包含White的所有文档
我尝试省略字段名称并将其作为默认值,如下所示:在solr配置中我写
<requestHandler name="/select" class="solr.SearchHandler">
<!-- default values for query parameters can be specified, these
will be overridden by parameters in the request
-->
<lst name="defaults">
<str name="echoParams">explicit</str>
<int name="rows">10</int>
<str name="df">PackageName</str>
<str name="df">Tag</str>
<str name="df">VersionComments</str>
<str name="df">VersionTag</str>
<str name="df">Description</str>
<str name="df">SKU</str>
<str name="df">SKUDesc</str>
</lst>
Run Code Online (Sandbox Code Playgroud)
我重新启动solr并创建一个完整的导入.
然后我尝试使用
http://[]:8983/solr/vault/select?q=White
Run Code Online (Sandbox Code Playgroud)
(哪里
http://[]:8983/solr/vault/select?q=VersionComments%3AWhite
Run Code Online (Sandbox Code Playgroud)
仍然有效)
但我没有得到任何答案的文件.
我究竟做错了什么?
我们的mySQL中有以下两个表:
mysql> describe comment;
+--------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| blogpost_id | int(11) | YES | | NULL | |
| comment_text | varchar(256) | YES | | NULL | |
+--------------+--------------+------+-----+---------+-------+
mysql> describe comment_tags;
+------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| comment_id | int(11) | YES | | NULL …Run Code Online (Sandbox Code Playgroud) 有没有其他人在使用Sitecore 7.x和Solr 4.7与Glass Mapper 3.3一起工作时遇到问题?似乎Glass Mapper使用Castle Windsor IOC容器.并且Sitecore建议也使用Castle Windsor IOC容器进行Solr.
根据Sitecore,他们告诉我应该使用Solr 4.7,我应该使用Castle.core.dll和Castle.Windsor.dll 3.1版.然而,看起来Glass Mapper 3.3需要版本3.2+的Castle.Core.dll.
我认为我不是唯一遇到这个问题的人.但我在网上找不到任何关于它的内容.
我通过Dataimporthandler从MySql导入数据.这非常有效,我收到此消息:
索引已完成.添加/更新:2,172个文档.删除了0个文件.(时长:01秒)请求数:1(1/s),提取:2,172(2,172/s),跳过:0,已处理:2,172(2,172/s)
但是,当我查看我的概述时,它说:
Num Docs:1470 Max Doc:2172删除文档:702
所以702个文件被删除了,原因我无法弄明白.在我的架构中,我不使用任何唯一的字段或可能会给重复项带来麻烦的东西.
数据-config.xml中
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="xxx"
user="xxx"
password="xxx"
/>
<document>
<entity name="product" query="CALL getSolrProducts();" transformer="RegexTransformer">
<field column="uuid" name="uuid"/>
<field column="id" name="id"/>
<field column="productimage" name="productimage"/>
<field column="producturl" name="producturl"/>
<field column="productpricenew" name="productpricenew"/>
<field column="productpriceold" name="productpriceold"/>
<field column="brandid" name="productbrand"/>
<field column="productbrandname" name="productbrandname"/>
<field column="productbrandurl" name="productbrandurl"/>
<field column="productbrandimage" name="productbrandimage"/>
<field column="productbranddata" name="productbranddata"/>
<field column="productshippingcoast" name="productshippingcoast"/>
<field column="productlink" name="productlink"/>
<field column="color" name="color" splitBy=","/>
<field column="colordata" name="colordata" splitBy=","/>
<field column="productdescription" name="productdescription"/>
<field column="upc" name="upc" splitBy=","/>
<field column="productname" name="productname"/> …Run Code Online (Sandbox Code Playgroud) 问题:如何使用 Apache SOLR 获得“保证提交”,其中将数据持久保存到磁盘和可见性同样重要?
背景:我们有一个网站,需要机器学习的高端搜索功能,并且还需要保证金融交易的提交。我们只想将 SOLR 作为唯一的数据存储以保持简单,并且不想同时使用另一个数据库。
我似乎找不到这个问题的任何答案。金融交易最简单的解决方案似乎是在持久化后定期查询 SOLR 的记录,但这可能需要更长的等待时间,或者是否有更好的解决方案?
任何人都可以建议一个使用 SOLR 实现“保证提交”的解决方案吗?
我有一个要求,我们需要获取如下值
CustomerID 不在 SOLR 索引中(已索引的 ID 列表)。
谁能建议我们如何使用 solr 查询来实现这一点?
如何获取指定为未存储在 solr 模式中的字段“to”值。该字段有一个 copyField“text”。 Facet导致内存越界, 有没有办法在不使用facet查询的情况下查看这些值?
solr4 ×10
solr ×8
mysql ×2
geolocation ×1
glass-mapper ×1
lucene ×1
sitecore ×1
sitecore7 ×1
solr-schema ×1
solrcloud ×1