我有一个SOLR命名语言的字符串 multiValued 字段,并且我希望查询仅返回精确匹配,其中查询中的所有语言都在 multiValued 字段中。
例如,假设我有三个文档:
"languages": [
"English",
"Russian",
"Swedish"
],
"languages": [
"English",
"Japanese",
"Russian",
"Spanish",
"Thai"
],
"languages": [
"English",
"Spanish"
],
Run Code Online (Sandbox Code Playgroud)
如果我要查询英语和俄语,我应该只返回前两个文档。以下是所使用的查询的一些示例:
q=语言:“英语”和语言:“俄语”
q=语言:(“英语”和“俄语”)
q=语言:("英语","俄语")
q=语言:(“俄语”“英语”)
在所有情况下,这些都会返回包含English或Russian 的所有记录。我可能忽略了一些明显的事情,但我四处搜索并没有发现任何可以解释这种行为的东西。
确保你写的AND是大写字母。查询如下所示:
q=语言:“英语”和语言:“俄语”
您还可以使用+或-来否定查询的一部分。例如,如果您想要一个以“英语”为语言但没有“俄语”的文档,您可以使用如下查询:
q=+语言:“英语” AND -语言:“俄语”
| 归档时间: |
|
| 查看次数: |
5462 次 |
| 最近记录: |