CouchDB Lucene 如何对包含减号 (-) 的查询进行 URL 编码
Posted
技术标签:
【中文标题】CouchDB Lucene 如何对包含减号 (-) 的查询进行 URL 编码【英文标题】:CouchDB Lucene How to URL Encode Query containing Minus (-) 【发布时间】:2014-08-20 15:37:32 【问题描述】:我想查询包含减号 (-) 的文本,例如
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 的文档。
感谢您的帮助!
【问题讨论】:
【参考方案1】:转义“-”并不是您真正需要的。您遇到的问题是您的分析器在“-”上进行标记,因此您实际上是在搜索两个不同的术语。相反,您需要搜索一个短语。对于search a phrase,只需将其括在引号中:"foo-bar"
或
http://127.0.0.1:5984/_fti/local/db/_design/foo/by_subject?q=%22foo-bar%22
【讨论】:
你是对的!使用你的短语 "foo-bar" 给出答案:"q":"default:\"foo bar\"" 并找到正确的文档。谢谢你!以上是关于CouchDB Lucene 如何对包含减号 (-) 的查询进行 URL 编码的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 CouchApp 对 CouchDB 进行 TDD?
在启动我想要运行的完整 XQuery 之前,如何验证嵌入在较大 XQuery 中的 Lucene 查询不包含语法错误?