[英]Solr not showing updated documents
我正在尝试更新solr文档中的特定字段。 出于测试目的,我正在使用作者字段。 之后我会尝试更新日期字段。 我在cygwin终端使用curl。 这是我在终端输入的命令:
curl http://localhost:8983/solr/MaharaPortfolioA/update -d '[{"url":"https://www.moopaed.de/mahara/view/view.php?id=6920","author":{"set":"Herbert"}}]'
要检查是否成功,我正在使用以下命令并获得此响应:
$ 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}}
根据回应,一切似乎都很好:作者的vaule从“Louisa”变为“Herbert”。 但是,如果我使用查询搜索“Herbert”,我得不到任何结果( http:// localhost:8983 / solr / MaharaPortfolioA / select?q = Herbert )。 在我寻找解决方案时,我发现了该问题的不同可能原因:
我没有进一步的想法为什么我搜索“赫伯特”没有给我任何回应。
提前致谢
你实际上并没有搜索作者字段: q=author:Herbert
将是查询作者的标准Lucene语法。 当您使用q=Herbert
,搜索会转到默认搜索字段,该字段可能不是作者(但通常是text
)。
如果您正在使用edismax
或dismax
查询解析器,则可以使用qf=author text
搜索text
和author
字段,并且可以使用qf=author^5 text
为author
字段中的匹配提供更多相关性权重。
text
字段的默认配置可能不是stored="true"
,这将丢弃实际内容(并且仅保留用于搜索的索引术语)。
如果您使用ExtractingRequestHandler / Apache Tika / Solr Cell索引内容,则会将内容添加到名为content
的字段中。 如果该字段不存在,则删除内容。
Tika将所有提取的文本添加到内容字段中。
您可以使用fmap.content=<fieldname>
将内容映射到其他字段名称。
首先确保在架构中将字段“author”设置为indexed =“true”,并使用您期望的类型进行设置。 您可以使用Solr管理员和模式浏览器的分析工具来使用它来验证您的假设。
您使用实时获取来评估更新运行良好。 哪个好,但是记住实时获取即使没有发生提交(因为它与事务日志协作),所以请确保软件提交或硬提交(触发openSearcher = true)
确保您的查询对您的用例有意义。 如果你想专门搜索作者“作者:赫伯特”是正确的查询。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.