我用这种格式将维基百科转储文件索引到solr:
<page>
<title>Bruce Willis</title>
<ns>0</ns>
<id>64673</id>
<revision>
<id>789709463</id>
<parentid>789690745</parentid>
<timestamp>2017-07-09T02:27:39Z</timestamp>
<contributor>
<username>Materialscientist</username>
<id>7852030</id>
</contributor>
<comment>imdb is not a reliable source</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="57375">{{Use mdy dates|date=March 2012}}
{{Infobox person
| name = Bruce Willis
| image = Bruce Willis by Gage Skidmore.jpg
| caption = Willis at the 2010 [[San Diego Comic-Con]].
| birth_name = Walter Bruce Willis
| birth_date = {{Birth date and age|1955|3|19}}
|
| birth_place = [[Idar-Oberstein]], West Germany
| nationality = [[American people|American]]
| residence = [[Los Angeles]], [[California]], U.S.
核心的模式文件:
<fieldType name="string" class="solr.StrField"/>
<fieldType name="date" class="solr.TrieDateField" precisionStep="0" positionIncrementGap="0"/>
<fieldType name="int" class="solr.TrieIntField" precisionStep="0" positionIncrementGap="0"/>
<fieldType name="float" class="solr.TrieFloatField" precisionStep="0" positionIncrementGap="0"/>
<fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>
<fieldType name="double" class="solr.TrieDoubleField" precisionStep="0" positionIncrementGap="0"/>
<field name="id" type="string" indexed="true" stored="true" required="true"/>
<field name="_version_" type="long" indexed="true" stored="true"/>
<field name="TITLE" type="text_wiki" indexed="true" stored="true" termVectors="true" termPositions="true" termOffsets="true" />
<field name="REVISION_TEXT" type="text_wiki" indexed="true" stored="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true" />
<field name="REVISION_TIMESTAMP" type="date" indexed="true" stored="true" multiValued="true" />
<field name="CONTRIBUTOR_ID" type="int" indexed="true" stored="true" multiValued="true" />
<field name="CONTRIBUTOR_USERNAME" type="string" indexed="true" docValues="true" stored="true" multiValued="true" />
<dynamicField name="*" type="string" indexed="true" stored="true" multiValued="true"/>
<uniqueKey>id</uniqueKey>
我没有发布schema.xml的所有内容。我知道我们可以使用solr来获得分数或相似度。基于(freq *(k1 + 1))/(freq + k1 *(1-b + b * fieldLength / avgFieldLength))计算相似度。我认为页面排名是基于传入和传出页面的数量。但是使用这种类型的字段我无法检索传入和传出的页面。
所以我不知道如何使用solr计算pagerank。我明白了吗?如果你知道怎么做,你能给我一些建议吗?感谢
答案 0 :(得分:-1)
取决于您希望Pagerank的高级程度。如果您只想考虑入站链接的数量,可以通过提取索引时页面链接到的页面列表来计算它。然后迭代存储的页面并选择链接到您正在查看的页面的文档计数,存储一个新字段,其中包含链接到该页面的文档数。按此分数排序(或使用它进行提升等)以影响返回的结果列表。