在相关文档中按字符串查找结果

时间:2012-12-26 22:13:12

标签: solr

我有一个包含这些文件的Solr数据库:

<doc>
    <str name="document_name_s">comment</str>
    <int name="deal_id_i">1</int>
    <int name="forumuser_id_i">8</int>
    <str name="id">108</str>
    <str name="message_s">hi kone you are right...</str>
</doc>
<doc>
    <str name="document_name_s">comment</str>
    <int name="deal_id_i">1</int>
    <int name="forumuser_id_i">8</int>
    <str name="id">112</str>
    <str name="message_s">41lxlg9x abbiiiog 1rkrp 440s 7hm34 4vyvg7t wevo bmq 718am5 d3d609 zxjrkd ycklykhx 1xasj v307287</str>
</doc>
<doc>
    <str name="document_name_s">deal</str>
    <str name="content_s">o2tqtoc3ge ryjf tti ed3rr6 r1vw4wla1c 3lmu7 o72ee1fmd jv7dcn usao0 iuz cy4s91 ys52w3t 8td2hz2pgu 58pxad6l zsyov07p r2z2 doav4k u1i49k c0te79k wrdkbqkr eo8p8e0ez 65u 3syi zu870a k3pl p4v zrjurlsa3 ivg v1h00 nfhx ujcxx3 mf46s xkld0fh mkeexbyb sqpq udncpnd0 uz0922dmmj vqwn zf59gl0rc 3tn z98n kql9ry1p 02gk 0rff5lt hb0exi9cp olik492q 4ycl c9ma2zx uwghjavut2 sczpmlg qqpy tqptp5h k5qce2pj ntv 5u98bg58n mshyy8e m7ip0m m7gd8z343 a99df fhp5g5ny 51vg3mxm cfk7au mmf67x0cj hrh 7i16 0mxzaq97 ca9o 5g0ct p0b hf6h3 e9ghhrjlt dqjj x1v9 ko3a5i hoq1 44k jfhf 121bsb6ud3 cql6l ipirv2 6qhpjcb 25t0zm67 ttm5lt</str>
    <int name="forumuser_id_i">1</int>
    <str name="id">1</str>
    <str name="plainlink_s">http://www.zalando.de/adidas-performance-dfb-pu-messenger-core-green-white-ad544a0e0-602.html</str>
    <str name="title_s">g4c Schuhe vtklq50</str>
</doc>
<doc>
    <str name="document_name_s">forumuser</str>
    <str name="id">1</str>
    <str name="username_s">kone2</str>
</doc>

现在我想找到所有“交易”,例如用户“kone”是交易的用户,或者评论文本包含“kone”作为单词。这在Apache Solr 4中是否可行?

2 个答案:

答案 0 :(得分:2)

您需要的是加入查询。语法在 Solr 4.0 documentation 中描述。我想第一个例子已经是你想要的了,所以这应该有效:

q={!join from=forumuser_id_i to=id}kone

与&#34;正常&#34;相比的唯一变化query是连接关系的规范:

q={!join from=... to=...}...

这允许您进一步限制搜索结果,例如使用过滤查询(fq)仅返回&#34;交易&#34;。

答案 1 :(得分:1)

您实际想要实现的目标是在不同文档之间加入。

不幸的是,此功能仅从Solr 4.0开始提供。