Hope this helps,
Marius
On Tue, Jul 26, 2011 at 3:57 PM, Sergiu Dumitriu<sergiu(a)xwiki.com>
wrote:
>
>
> On 07/25/2011 05:08 AM, 许凌志(Jamesxu) wrote:
>> Hi All, how can I query the attachments of a specific page, for example
>> "Main.testpage"
>>
>> I found if I use the query
>> space:Main AND filename:__INPUT__* AND type:attachment
>> I can get the attachments only from the Main space.
>>
>> but how about a specific page, I have tried
>> page:Main.testpage AND filename:__INPUT__* AND type:attachment
>> wikipage:Main.testpage AND filename:__INPUT__* AND type:attachment
>> but no one can give the right results.
>
> To see which fields are indexed, you can look at the Java sources,
> starting from
>
>
https://github.com/xwiki/xwiki-platform/blob/master/xwiki-platform-core/xwi…
>
> The document name is indexed both as "name", which holds just the name,
> without the space, and "fullname", which contains the space as well --
> Space.Document
>
>> On Wed, Jul 20, 2011 at 5:56 PM, Eduard Moraru<enygma2002(a)gmail.com>
> wrote:
>>
>>> Hi James,
>>>
>>> That's just a query problem. The queries that are used for the search
>>> suggest are located in XWiki.SearchSuggestConfig. The query for
Document
>>> Name/Content are not complete. They
also need to specify that the
result
>>> should be a document, and not
anything (like attachments for
instance).
> The
>>> correct query for searching for documents by document name should be:
>>>
>>> name:__INPUT__* AND type:wikipage
>>>
>>> For attachment name, the correct query should be:
>>>
>>> filename:__INPUT__* AND type:attachment
>>>
>>> So, for your usecase (quering documents by name or attachments by
name),
>>> the
>>> query should be:
>>>
>>> (filename:__INPUT__* AND type:attachment) OR (name:__INPUT__* AND
>>> type:wikipage)
>>>
>>> I`ve tested it out by creating a page named "IconTest" and then
> searching
>>> for "icon". The results were:
>>>
>>> <results>
>>> <rs id="/xwiki/bin/download/XWiki/RequestsStatus/icon.png"
>>> info="XWiki.RequestsStatus">icon.png</rs>
>>> <rs id="/xwiki/bin/download/XWiki/ExtensionManager/icon.png"
>>> info="XWiki.ExtensionManager">icon.png</rs>
>>> <rs id="/xwiki/bin/download/Panels/PanelWizard/icon.png"
>>> info="Panels.PanelWizard">icon.png</rs>
>>> <rs id="/xwiki/bin/download/XWiki/OfficeImporterAdmin/icon.png"
>>> info="XWiki.OfficeImporterAdmin">icon.png</rs>
>>> <rs id="/xwiki/bin/download/XWiki/SearchAdmin/icon.png"
>>> info="XWiki.SearchAdmin">icon.png</rs>
>>> <rs id="/xwiki/bin/download/Blog/Categories/icon.png"
>>> info="Blog.Categories">icon.png</rs>
<-----------
> attachments
>>> <rs id="/xwiki/bin/view/Main/IconTest"
>>> info="Main.IconTest">IconTest</rs>
<-----------
documents
>>> </results>
>>>
>>> Ignore the fact that the result is in XML, you can make it json, as
>>> suggested in my previous mail.
>>>
>>> Hope that works for you.
>>>
>>> Thanks,
>>> Eduard
>>>
>>> 2011/7/20 许凌志(Jamesxu)<lingzhixu326(a)gmail.com>
>>>
>>>> Thanks Eduard very much, It is really helpful, today I am trying to
use
>>>> SuggestLuceneService to test the
autosuggestion functions, I found a
>>>> problem.
>>>>
>>>> For example, I create a page named "jamesxu", and upload an
attachment
>>>> named
>>>> "autosuggest1.js", then I input the query "jame" to
the search box on
> the
>>>> top right of the page, the suggestion list shows up, but the results
in
>>> the
>>>> "Document Name" and "Document Content" contains both
the wiki page
>>>> "jamesxu"
>>>> and its attachment "autosuggest1.js", this behaviour is not
excepted
in
>>> the
>>>> autosuggestion features of the editor, because when user types
"jame“,
> he
>>>> really wants to query the wiki page or attachment begin with or
> contains
>>>> "jame", the attachment "autosuggest1.js" does not
contains "jame",
it
>>>> should not be included in the
suggestion results.
>>>>
>>>> On Tue, Jul 19, 2011 at 10:14 PM, Eduard Moraru<enygma2002(a)gmail.com
>>>>> wrote:
>>>>
>>>>> Hi James,
>>>>>
>>>>> I agree with Marius that you should reuse as much as possible what
>>>> already
>>>>> exists instead of creating an alternate service that does, in a
great
>>>>> proportions, the same as an
existing one but has one extra feature.
>>>>>
>>>>> So, as I was browsing trough REST's resources, I noticed an
>>> undocumented
>>>>> "/wikis/{wikiName}/attachments" [1] resource at the wiki
level that
is
>>>> able
>>>>> to search for attachments. As you can see from the method's
signature,
>>> it
>>>>> accepts parameters to filter your search by attachment name, page,
>>> space,
>>>>> author, and type. I will fix the REST API documentation and include
> it.
>>>>>
>>>>> This resource should do the trick for what you need, used in
>>> conjunction
>>>>> with the search resource that should handle documents.
>>>>>
>>>>> The advantage of this is that you can get json, as you did for the
>>> search
>>>>> resource.
>>>>> The disadvantage of the whole REST API, for your needs, might be
that
>>> it
>>>> is
>>>>> limited at wiki level and can not perform a multi-wiki search in one
>>>> query
>>>>> (wihout you having to do a search for each wiki).
>>>>>
>>>>> On the other side, the Lucene search does not have this problem
> because
>>>> it
>>>>> indexes all the wikis and can perform searches on all wikis in one
>>> query
>>>>> and
>>>>> it does it much faster than REST (which uses database queries).
Also,
>>>>> lucene
>>>>> is used in the search suggest (the one at the top-right corner of
the
>>>>> screen) and in the main XWiki
search as well, so it would be much
>>> better
>>>> if
>>>>> the results were consistent. Besides this, if the lucene system is
>>>> improved
>>>>> over time, your results will also be improved as a result.
>>>>>
>>>>> So my suggestion is that you modify XWiki.SuggestLuceneService and
> make
>>>> it
>>>>> accept a "media" parameter (or something similar) that
should accept
> at
>>>>> least 2 values: "xml"(default) and "json". Based
on this value, you
> can
>>>>> wrap
>>>>> the results of the lucene search into a basic json structure that
you
>>> can
>>>>> easily use in your suggest box. You can check [2][3] and [4] for
>>>> references
>>>>> of how to use Lucene search in XWiki.
>>>>> Once you are done with it, you can even do a pull request so that
this
>>>>> feature gets integrated into
XWiki.
>>>>>
>>>>> The best and cleanest solution would be that the REST search
resource
>>>> used
>>>>> internally lucene instead of a custom database query and that there
>>> would
>>>>> be
>>>>> a single search back-end (preferably configurable in
administration).
>>>>> Anyway, it's not your job
to fix XWiki :) so making
>>>>> XWiki.SuggestLuceneService return json too is the best way to go
right
>>>> now,
>>>>> IMO.
>>>>>
>>>>> Thanks,
>>>>> Eduard
>>>>>
>>>>> -----------------
>>>>> References:
>>>>> [1]
>>>>>
>>>>>
>>>>
>>>
>
https://github.com/xwiki/xwiki-platform/blob/master/xwiki-platform-core/xwi…
https://github.com/xwiki/xwiki-platform/blob/master/xwiki-platform-core/xwi…
>>>>> [4]
>>>>>
>>>>>
>>>>
>>>
>
https://github.com/xwiki/xwiki-platform/blob/master/xwiki-platform-core/xwi…
>>>>>
>>>>>
>>>>> On Tue, Jul 19, 2011 at 8:36 AM, 许凌志(Jamesxu)<
lingzhixu326(a)gmail.com
>>>>>> wrote:
>>>>>
>>>>>> Hi, these days I need to implement the rest services for getting
>>>>> suggestion
>>>>>> results for link autosuggestion. In my design, I think the
suggestion
>>>>>> results should be
filtered and ranked by the following conditions.
>>>>>> (for example user types "[[mytest" in page
"xwiki:main.newpage")
>>>>>> First [[ is triggered, when user keep typing, the page and
attachment
>>>>>> suggestion results should
be filtered and ranked by the following
>>>> rules:
>>>>>> 1. Prefix matched (only for page name and attachment name)
>>>>>> - The pages which are in the same wiki and space of the
document
>>>>> current
>>>>>> edited.( Prior A)
>>>>>> - The pages which are in the same wiki but different space
of
the
>>>>>> document current
edited;(Prior B)
>>>>>> - The pages which are in different wiki and different space
of
the
>>>>>> document current edited;
(Prior C);
>>>>>> 2. Partial matched (only for page name and attachment name)
>>>>>> - The pages which are in the same wiki and space of the
document
>>>>> current
>>>>>> edited.( Prior C)
>>>>>> - The pages which are in the same wiki but different space
of
the
>>>>>> document current
edited;(Prior D)
>>>>>> - The pages which are in different wiki and different space
of
the
>>>>>> document current edited;
(Prior E)
>>>>>> 3. If no page and attachment matches the above two rules, the
>>>> suggestion
>>>>>> box will be disappeared.(eclipse way)
>>>>>>
>>>>>> However, sometimes user might insert the space name too, for
example,
>>>>> user
>>>>>> will type "[[Main", following the rule 1 and rule 2,
the pages
begins
>>>>> with
>>>>>> "Main" will be first retrieved as the suggestion
results untill
user
>>>>> types
>>>>>> "." after "Main", the suggestion result will
be retreved from the
>>> pages
>>>>>> under the space "Main" only. Filters still obey the
above three
>>> rules.
>>>>>> And also when user types "attach:", the suggestion
result will be
>>>>> retrieved
>>>>>> the attachments only following the above three rules.
>>>>>> And if the link is under the attachment context, when
"@" is typed,
>>> the
>>>>>> attachments only will be retrieved following the above three
rules.
>>>>>>
>>>>>> In order to do this, I investigated the rest services already
>>> existed(
>>>>>>
http://platform.xwiki.org/xwiki/bin/view/Features/XWikiRESTfulAPI
),
>>>> but
>>>>> I
>>>>>> found none is perfect suitable for my needs. So I talk with
Marius,
>>> he
>>>>>> suggested me to use the existed services which are closed to my
needs
>>>>>> first,
>>>>>> and then write the perfect one later.
>>>>>>
>>>>>> However, I only found the rest service:/wikis/{wiki}/search is
the
>>>> most
>>>>>> closed one for the pages suggestion to my needs, there is no
>>> attachment
>>>>>> search rest service for attachment suggestion, Marius adviced me
to
>>> use
>>>> "
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>
http://localhost:8080/xwiki/bin/get/XWiki/SuggestLuceneService?outputSyntax…
<
http://localhost:8080/xwiki/bin/get/XWiki/SuggestLuceneService?outputSyntax…
> <
>
http://localhost:8080/xwiki/bin/get/XWiki/SuggestLuceneService?outputSyntax…
>>
>>> <
>>>
>
http://localhost:8080/xwiki/bin/get/XWiki/SuggestLuceneService?outputSyntax…
>>>>
>>>> <
>>>>
>>>
>
http://localhost:8080/xwiki/bin/get/XWiki/SuggestLuceneService?outputSyntax…
>>>>>
>>>>> <
>>>>>
>>>>
>>>
>
http://localhost:8080/xwiki/bin/get/XWiki/SuggestLuceneService?outputSyntax…
>>>>>>
>>>>>> "
>>>>>> instead, but I found the search result is in xml format(not
json),
>>> and
>>>>> also
>>>>>> the information of the results got from SuggestLuceneService is
>>> limit.
>>>>>>
>>>>>> I have read the document of how to write custom rest service, but
the
>>>>> information is limit, any one can guide me to run an helloworld?
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Best wishes,
>>>>>
>>>>> 许凌志(Jame Xu)
>>>>>
>>>>> MOE KLINNS Lab and SKLMS Lab, Xi'an Jiaotong University
>>>>>
>>>>> Department of Computer Science and Technology, Xi’an Jiaotong
>>> University
>>>>> _______________________________________________
>>>>> devs mailing list
>>>>> devs(a)xwiki.org
>>>>>
http://lists.xwiki.org/mailman/listinfo/devs
>>>>>
>>>> _______________________________________________
>>>> devs mailing list
>>>> devs(a)xwiki.org
>>>>
http://lists.xwiki.org/mailman/listinfo/devs
>>>>
>>>
>>>
>>>
>>> --
>>> Best wishes,
>>>
>>> 许凌志(Jame Xu)
>>>
>>> MOE KLINNS Lab and SKLMS Lab, Xi'an Jiaotong University
>>>
>>> Department of Computer Science and Technology, Xi’an Jiaotong
University
>>> _______________________________________________
>>> devs mailing list
>>> devs(a)xwiki.org
>>>
http://lists.xwiki.org/mailman/listinfo/devs
>>>
>> _______________________________________________
>> devs mailing list
>> devs(a)xwiki.org
>>
http://lists.xwiki.org/mailman/listinfo/devs
>>
>
>
>
--
Sergiu Dumitriu
http://purl.org/net/sergiu/
_______________________________________________
devs mailing list
devs(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________
devs mailing list
devs(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs