2

マイナス (-) 記号を含むテキストをクエリしたい。

foo-bar 

couchdb lucene フルテキスト クエリを使用します。lucene ルールに従うと、マイナスをエスケープする必要があり、その結果、

foo\-bar

最後に、バックスラッシュを urlencode する必要があります。

foo%5C-bar

したがって、完全な URL は次のようになります。

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

どちらも機能しません。結果は常に 2 つのフレーズに分割されます

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

foo または bar のみを含むドキュメントも検出されます。

ご協力いただきありがとうございます!

4

1 に答える 1

2

「-」をエスケープする必要はありません。あなたが直面している問題は、アナライザーが "-" でトークン化することです。そのため、実際には 2 つの異なる用語を検索しています。代わりに、フレーズを検索する必要があります。フレーズを検索するには、引用符で囲みます: "foo-bar"

また

http://127.0.0.1:5984/_fti/local/db/_design/foo/by_subject?q=%22foo-bar%22
于 2014-08-21T04:19:22.537 に答える