这是我原帖的编辑:我认为我没有清楚地表达我的问题。
我们从供应商那里收到XML文件中的硬件制造数据。在一个典型的日子里,我们得到了25,000个文件。这就是我选择实施Solr的原因。
文件名由11个由tildas分隔的字段组成,如此
CTCA~PRE~PREP~1010123~ONTDTVP5A~41~P~R16-500~000912239878~20110125~212321.XML
我们的R& D人员希望能够搜索文件XML文件名的每个字段(OR操作),但他们不关心搜索文件内容。理想情况下,他们想查询所有文件,其中“stbmodel”等于“R16-500”或“结果”是“P”或“归档”是“20110125”......你明白了。
我在schema.xml中定义了每个数据字段,如此(从左到右 - 对于长列表抱歉):
field name="location" type="textgen" indexed="false" stored="true" multiValued="false"/
field name="scriptid" type="textgen" indexed="false" stored="true" multiValued="false"/
field name="slotid" type="textgen" indexed="false" stored="true" multiValued="false"/
field name="workcenter" type="textgen" indexed="false" stored="false" multiValued="false"/
field name="workcenterid" type="textgen" indexed="false" stored="fase" multiValued="false"/
field name="result" type="string" indexed="true" stored="true" multiValued="false"/
field name="computerid" type="textgen" indexed="false" stored="true" multiValued="false"/
field name="stbmodel" type="textgen" indexed="true" stored="true" multiValued="false"/
field name="receiver" type="string" indexed="true" stored="true" multiValued="false"/
field name="filedate" type="textgen" indexed="false" stored="true" multiValued="false"/
field name="filetime" type="textgen" indexed="false" stored="true" multiValued="false"/
另外,我将字段“接收器”定义为唯一键。但是我的查询没有返回任何结果。我确保更新我的索引:
"java -jar apache-solr-1.4.1/example/exampledocs/post.jar *XML".
我显然缺少一些东西。有任何想法吗?。
的Al。
PS:我的下一步是尝试“solr.KeywordTokenizerFactory”。
答案 0 :(得分:0)
您不会将它们添加为单独的字段吗?因此,当您要插入数据时,请在记录中插入您想要搜索的相关字段。因此,在搜索文件名时不要考虑它,将文件名视为与文件内容对等的数据字段。
答案 1 :(得分:0)