我有(尤其)我的RavenDB中的以下对象:
Object1
:
{
"Texts" : [ "one two", "three four" ]
}
Object2
:
{
"Texts" : [ "one three", "two four" ]
}
我想查找Texts
中字符串包含one
和two
两个字词的所有对象。
如果我索引字段
from doc in docs.Objects select new { Texts }
并使用StandardAnalyzer
进行分析,当我只需要Object1
时,以下查询将同时返回Object2
和Object1
:
Texts:(one AND two)
我该如何解决这个问题?
答案 0 :(得分:1)
您的要求并非真正兼容。 这份文件怎么样?
{
"Texts" : [ "two one", "three four" ]
}
您是否希望在搜索one AND two
时找到它?
如果没有,只需进行短语搜索,如果是的话,你可以在不使用扇出的情况下真正做到你想做的事。
答案 1 :(得分:1)
如果您需要这样,您可以:
from doc in docs
from text in doc.Tests
select new { Text = text }
请注意,这是一个扇出索引,如果每个文档有大量文本,则需要注意所需的资源。