lucene - CouchDB Lucene 如何对包含减号 (-) 的查询进行 URL 编码

标签 lucene couchdb couchdb-lucene

我想查询包含减号 (-) 的文本,例如

foo-bar 

使用 couchdb lucene 全文查询。 遵循 lucene 规则,我必须转义减号,导致

foo\-bar

最后我必须对反斜杠进行urlencode,结果是

foo%5C-bar

所以完整的网址是:

http://127.0.0.1:5984/_fti/local/db/_design/foo/by_subject?q=foo%5C-bar

两者都不起作用。结果总是分为两个短语

"q":"default:foo default:bar"

导致仅包含 foo 或 bar 的文档也被发现。

感谢您的帮助!

最佳答案

转义“-”并不是您真正需要的。您遇到的问题是您的分析器对“-”进行标记,因此您实际上是在搜索两个不同的术语。您需要搜索一个短语。至search a phrase ,只需将其用引号引起来:"foo-bar"

http://127.0.0.1:5984/_fti/local/db/_design/foo/by_subject?q=%22foo-bar%22

关于lucene - CouchDB Lucene 如何对包含减号 (-) 的查询进行 URL 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25408915/

相关文章:

java - 生成 Lucene segments_N 文件

http - 使用 Mathematica 将文档插入 CouchDB

couchdb - 每个用户数据库(pouchdb/couchdb)和共享数据 - 可行吗?

windows - Windows 应用程序中嵌入的零部署 CouchDB?

couchdb - 搜索 API 中的 Cloudant/Couch 数据库分页 - 如何跳过 n 条记录

javascript - 是否有必要在 CouchDB 中创建所有组合的单独 View

air - 是否有用于 Adob​​e Air 应用程序的 lucene 搜索索引的库?

sql - 在 Lucene 或 SQL 中有更好的性能

lucene - 什么是转义 Elasticsearch 特殊字符的 Java API?

java - 如何在CouchDB中实现关键字搜索