首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Solr未显示更新的文档

Solr未显示更新的文档
EN

Stack Overflow用户
提问于 2017-04-07 13:09:39
回答 2查看 2.6K关注 0票数 1

我正在尝试更新solr文档中的特定字段。为了测试目的,我使用了author字段。之后,我将尝试更新日期字段。我在赛格温终端机用卷发。这是我在终端输入的命令:

代码语言:javascript
代码运行次数:0
运行
复制
curl http://localhost:8983/solr/MaharaPortfolioA/update -d '[{"url":"https://www.moopaed.de/mahara/view/view.php?id=6920","author":{"set":"Herbert"}}]'

为了检查是否成功,我使用以下命令并获得以下响应:

代码语言:javascript
代码运行次数:0
运行
复制
$ curl http://localhost:8983/solr/MaharaPortfolioA/get?id="https://www.moopaed.de/mahara/view/view.php?id=6920"
{
  "doc":
  {
    "url":"https://www.moopaed.de/mahara/view/view.php?id=6920",
    "portfolio_title":"IT 2 Portfolio - View 2",
    "title":"Themenschwerpunkt Informationssysteme  - moopaed mahara",
    "author":"Herbert",
    "indexDate":"2017-04-05T22:04:10Z",
    "nrImages":8,
    "nrWords":7474,
    "nrUploadedImages":6,
    "nrLinks":0,
    "cohort":"IT3 WS 2013/2014",
    "lecture":"OOP",
    "nrWikipediaImages":0,
    "nrWikipediaLinks":0,
    "_version_":1564023239370342400}}

根据人们的反应,一切似乎都很好:作者的作品从“路易莎”变成了“赫伯特”。但是,如果我使用一个查询--搜索"Herbert“--我就得不到结果(http://localhost:8983/solr/MaharaPortfolioA/select?q=Herbert)。在我寻找解决方案的过程中,我发现了造成这个问题的不同原因:

我不知道为什么我对“赫伯特”的搜索没有给我任何回应。

  • 是因为我的唯一键是url而不是整数值吗?
  • 还是因为我通过Cygwin使用Curl?此外,cURL (URL客户端)和curl (编程)之间也有区别 语言)。如果教程使用这个术语,它们是指cURL吗?
  • 另一个原因可能是"author“在索引时被过滤和标记。也许我的更新没有贯穿这些行动?

提前感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-09 10:24:42

实际上,您并不是在搜索author字段:q=author:Herbert将是查询作者的标准Lucene语法。当您使用q=Herbert时,搜索将转到默认的搜索字段,该字段可能不是作者(但通常是text)。

如果使用edismaxdismax查询解析器,可以使用qf=author text搜索textauthor字段,还可以使用qf=author^5 textauthor字段中的命中给予更大的关联权重。

text字段的默认配置可能不是stored="true",它将丢弃实际内容(并且只保留用于搜索的索引项)。

如果使用ExtractingRequestHandler / Apache / Solr单元索引内容,内容将添加到一个名为content的字段中。如果该字段不存在,则删除内容。

Tika将所有提取的文本添加到content字段。

您可以使用fmap.content=<fieldname>将内容映射到不同的字段名。

票数 1
EN

Stack Overflow用户

发布于 2017-04-10 13:23:48

  1. 首先,确保在模式中将'author‘字段设置为indexed="true“,并设置您所期望的类型。您可以使用Solr admin的分析工具和模式浏览器来验证您的假设。
  2. 您使用实时获取来评估更新效果很好。这很好,但要记住,即使没有发生提交,实时get也能工作(因为它与事务日志协同工作),所以请确保软提交或硬提交(使用openSearcher=true )被触发。
  3. 确保您的查询对您的用例有意义。如果您希望通过作者进行专门搜索," author :Herbert“是正确的查询。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43279042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档