我使用dataimport来管理以下架构:
<field name="PageID" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="Content" type="text_ar" indexed="true" stored="true" required="true" termVectors="true" />
<field name="PageNum" type="int" indexed="false" stored="true" required="false" multiValued="false" />
<field name="Part" type="int" indexed="false" stored="true" required="false" multiValued="false" />
<field name="BookID" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="BookTitle" type="text_ar" indexed="true" stored="true" required="true" />
<field name="BookInfo" type="text_ar" indexed="true" stored="true" required="true" />
<field name="BookCat" type="int" indexed="false" stored="true" required="false" multiValued="false" />
<field name="TitleText" type="text_ar" indexed="false" stored="true" required="false" multiValued="true" />
<field name="TitleID" type="string" indexed="false" stored="true" required="false" multiValued="true" />
<field name="TitleSub" type="int" indexed="false" stored="true" required="false" multiValued="true" />
<field name="TitleLevel" type="int" indexed="false" stored="true" required="false" multiValued="true" />
直到这一点,我认为一切都很顺利,搜索在Content
字段上表现得非常好。但是,我决定建立一个搜索池,允许在一个查询中通过添加名为Content
的新字段在BookTitle
,TitleText
和SearchPool
之间进行搜索,然后复制这些字段它。所以我只是在模式中添加了以下几行:
<field name="SearchPool" type="text_ar" indexed="true" stored="true" multiValued="false" termVectors="true" />
<copyField source="Content" dest="SearchPool" />
<copyField source="BookTitle" dest="SearchPool" />
<copyField source="TitleText" dest="SearchPool" />
然后我从数据库重复dataimport,然后我重新启动了TomCat。现在,我无法通过以下方式获得任何结果:
select?q=SearchPool%3Aالصلاة&wt=json&indent=true
在Content
之间搜索时会返回结果!此外,SearchPool
在Content
返回的结果中不会显示为{{1}}。