我一直在编写软件来解析PDF中的内容,特别是分成区域的文本.为此,我需要字体指标,如字形位移,字体范围上升,下降和字形边界框等.简而言之,PDF格式定义的FontDescriptor字典中应该可用的指标类型.
不幸的是,对于基本字体是"基本14"标准字体集之一的字体,不必包含FontDescriptor.
我在哪里可以找到或如何为base 14字体生成字体指标?
我想在xml树上结合三个zip-filter查询的结果.我正在解析的XML看起来像这样:
<someroot>
<publication>
<contributors>
<person_name>
<surname>Surname A</surname>
</person_name>
<person_name>
<given_name>Given B</given_name>
<surname>Surname B</surname>
<suffix>Suffix B</suffix>
</person_name>
</contributors>
</publication>
</someroot>
Run Code Online (Sandbox Code Playgroud)
从这个例子中你可以看到<given_name>并且<suffix>是可选的 - 只<surname>需要它.这就是我的问题 - 如果我运行三个单独的查询,我得到的响应将彼此不同:
(xml-> xml :publication :contributors :person_name :given_name text)
(xml-> xml :publication :contributors :person_name :surname text)
(xml-> xml :publication :contributors :person_name :suffix text)
Run Code Online (Sandbox Code Playgroud)
运行这三个查询后,我将留下三个基数不匹配的序列; given_name并且suffix长度为1而surname长度为2.这使我无法组合每个名称的组成部分.我需要编写一个查询,在序列构建期间执行此名称连接.
我正在查看非常稀疏的文档,clojure.contrib.zip-filter.xml并且无法弄清楚我是如何做到的(或者如果它甚至可能).不幸的是,我是一个Clojure(和Lisp)的新手!任何人都可以指出我如何编写一个将连接其他三个嵌入式查询的查询?
我有一个单核[1],非复制Solr索引,包含大约4000万个文档.每个文档都有两个字段,一个存储,另一个不存储.我在非存储字段上搜索,存储的字段是我的结果.
该索引的响应时间约为8秒.需要注意的是,我没有做出我认为典型的全文查询.每个查询都包含许多OR术语.我预计这会很慢,但不会那么慢.
我注意到的是,Solr只使用了其JVM可用的7GB的几百MB.它不能将大部分索引保留在内存中.这引出了我的问题:有没有办法配置solr,以便强制它在RAM中维护很多(或至少更多)索引?
[1] Sharding为我带来了一个问题.在我的Solr应用中,相对分数非常重要.分片本地评分意味着我拥有的分片越多,分数就越不准确.
回复评论的更多信息:
这是我搜索的字段的字段类型定义:
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt"/>
<charFilter class="solr.MappingCharFilterFactory" mapping="mapping-FoldToASCII.txt"/>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt"/>
<charFilter class="solr.MappingCharFilterFactory" mapping="mapping-FoldToASCII.txt"/>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
Run Code Online (Sandbox Code Playgroud)
这是一个示例查询:
(Carberry J 2008 Toward a Unified Theory of High-Energy Metaphysics Silly String Theory Journal of Psychoceramics 5 11 1 3)
Run Code Online (Sandbox Code Playgroud)
这将需要大约10秒来响应,而具有较少ORed项的查询(例如(Carberry 2008))将在~100ms内返回.