I found that if there is no input for lucene query, no results will be
returned. But In link suggestion, when user first type "[[", there is no
queries, so no suggestions will be got, but Marius and I excepted there is a
default suggestion results for users, like the recent modified pages, and
the attachments belong to the current edited pages if exists.
Marius give me wiki page: Panels.Recently Modified, there is an page object
for getting the Recently Modeified pages. I have tried to enhance this
object so that it can return json results which can be used as a web
service, so I edit the content of the object of this page, the code is
below:
{{velocity}}
*#set($media = "$!request.media")*
#set ($recentlyModified = $xwiki.searchDocuments('where 1=1 order by
doc.date desc', 5, 0))
#if ($recentlyModified.size() > 0 || $showEmptyPanels)
*#if($media == 'json')
$response.setContentType("application/json")
{'test':'mytest'}*
#else
#panelheader($msg.get('panels.recentlyModified.title'))
#foreach ($docname in $recentlyModified)
#if ($xwiki.hasAccessLevel('view', $xcontext.getUser(), $docname))
#set ($rdoc = $xwiki.getDocument($docname).getTranslatedDocument())
#if ($foreach.index > 0)
(% class="pitemseparator" %) ~| (%%)##
#end
(% class="panelitem" %)[[$rdoc.plainTitle>>$rdoc]](%%)##
#end
#end
#end
#panelfooter()
#end
{{/velocity}}
as you can see, I add an parameter named "media", if the media is json, then
return the json file, otherwise the default behaviour will be executed. I
tested the code above, and the json result is not
"*{'test':'mytest'}*", but
contains some other html tags.
Can anyone tell me why?
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…
>>> [2]
http://extensions.xwiki.org/xwiki/bin/view/Extension/Lucene+Plugin
>>> [3]
>>>
>>>
>>
>
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…
>>>>
>>>> "
>>>> 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
--
Best wishes,
许凌志(Jame Xu)
MOE KLINNS Lab and SKLMS Lab, Xi'an Jiaotong University
Department of Computer Science and Technology, Xi’an Jiaotong University