none
Windows Search Zugriff RRS feed

  • Allgemeine Diskussion

  • Morgen zusammen,

    Für eine Intranet Anwendung möchte ich auf dem IIS7.5 mit APS.Net und C# eine Windows Search seite Aufbauen.
    Dafür habe ich folgenden Thread gelesen und versucht das ziel zu erreichen.

    http://social.msdn.microsoft.com/.../web-interface-for-windows-search-4?forum=windowsdesktopsearchhelp

    Nun scheitert mein Vorhaben aber an der Darstellung, es wird keine Ausgabe dargestellt.
    Habe auf der Lokalen Maschine einfach die Platte D: als daten Freigegeben also \\localmachine\daten

    Nun bin ich mir aber nicht sicher, ob der Index dienst richtig läuft oder muss ich den irgendwo starten?

    Kann mir vielleicht jemand helfen?

    Gruß Rnd1337

    Donnerstag, 20. März 2014 10:57

Alle Antworten

  • Hi,

    leider fehlen sämtliche Angaben, die uns dabei helfen würden, dein Problem einzugrenzen.

    Zeig bitte mal deinen Code und erklär genauer, was Du mit "es wird keine Ausgabe dargestellt" meinst.

    Warum Du ein Laufwerk freigegeben hast, verstehe ich nicht. Welches Laufwerk? Wo liegt das? Was hat das mit der Suche und der Ausgabe der Suchergebnisse zu tun?


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Freitag, 21. März 2014 11:31
    Moderator
  • Hi,

    leider fehlen sämtliche Angaben, die uns dabei helfen würden, dein Problem einzugrenzen.

    Zeig bitte mal deinen Code und erklär genauer, was Du mit "es wird keine Ausgabe dargestellt" meinst.

    Warum Du ein Laufwerk freigegeben hast, verstehe ich nicht. Welches Laufwerk? Wo liegt das? Was hat das mit der Suche und der Ausgabe der Suchergebnisse zu tun?


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Hi, ich dachte der Verweis auf den Thread mit dem Code würde reichen. Sry!

    Also mein Code für das Webform sieht wie folgt aus

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using Microsoft.Search.Interop;
    using System.Data;
    
    
    namespace intranet
    {
        public partial class WebForm3 : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                if (ViewState["selectCommand"] != null)
                {
                    IndexerDataSource.SelectCommand = (string)ViewState["selectCommand"];
                    QuerySql.Visible = ShowSQL.Checked;
                }
            }
    
            protected void ExecuteQuery_Click(object sender, EventArgs e)
            {
                if (String.IsNullOrEmpty(QueryText.Text) == false)
                {
    
                    CSearchManager manager = new CSearchManager();
                    ISearchCatalogManager catalogManager = manager.GetCatalog("SystemIndex");
                    ISearchQueryHelper queryHelper = catalogManager.GetQueryHelper();
    
                    // Total number of results
                    queryHelper.QueryMaxResults = 10;
    
                    queryHelper.QuerySelectColumns = "System.Search.Rank, System.ItemPathDisplay, System.Size, System.Search.AutoSummary";
                    queryHelper.QuerySorting = "System.Search.Rank desc";
    
                    string server = "BERGELMIR";
                    string share = "test";
    
                    queryHelper.QueryWhereRestrictions = "AND (\"SCOPE\" = 'file://" + server + "/" + share + "')";
                    string selectCommand = queryHelper.GenerateSQLFromUserQuery(QueryText.Text);
    
                    selectCommand = selectCommand.Replace("FROM \"SystemIndex\"", "FROM \"" + server + "\".\"SystemIndex\"");
    
                    QuerySql.Text = selectCommand;
                    IndexerDataSource.SelectCommand = selectCommand;
                }
            }
        }
    }


    Und der ASP.NET Code dahinter

    <%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="WebForm3.aspx.cs" Inherits="anaxima_intranet.WebForm3" %>
    <asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="FeaturedContent" runat="server">
    </asp:Content>
    <asp:Content ID="Content3" ContentPlaceHolderID="MainContent" runat="server">
            <asp:SqlDataSource ID="IndexerDataSource" runat="server" 
            ConnectionString="Provider=Search.CollatorDSO.1;Extended Properties=&quot;Application=Windows&quot;" 
            ProviderName="System.Data.OleDb" >
        </asp:SqlDataSource>
            <asp:TextBox ID="QueryText" runat="server" Width="80%"></asp:TextBox>
            <asp:Button ID="ExecuteQuery" runat="server" Text="Search" onclick="ExecuteQuery_Click" />
            <br />
            <a href="http://www.microsoft.com/windows/products/winfamily/desktopsearch/technicalresources/advquery.mspx">Learn more about Advanced Query Syntax</a>
            <br />
            <asp:CheckBox ID="ShowSQL" runat="server" Text="Show SQL" AutoPostBack="True"></asp:CheckBox>
            <br />
            <br />
            <asp:TextBox ID="QuerySql" runat="server" Width="80%" Rows="10" TextMode="MultiLine" ReadOnly="True" Visible="False"></asp:TextBox>
            <br />
            <br />
            <asp:GridView 
                ID="ResultTable" 
                runat="server" 
                Width="100%"
                AutoGenerateColumns="False" 
                DataSourceID="IndexerDataSource" 
                AllowSorting="True" 
                AllowPaging="True">
                <Columns>
                    <asp:BoundField
                        DataField="System.Search.Rank"
                        HeaderText="Rank"
                        SortExpression="System.Search.Rank" />
                    <asp:BoundField 
                        DataField="System.ItemPathDisplay" 
                        HeaderText="URL" 
                        DataFormatString="<a href=&quot;{0}&quot;&gt;{0}&lt;/a&gt; " 
                        HtmlEncode="False" 
                        HtmlEncodeFormatString="False" 
                        SortExpression="System.ItemPathDisplay" />
                    <asp:BoundField 
                        DataField="System.Size" 
                        HeaderText="Size" 
                        SortExpression="System.Size" />
                    <asp:BoundField 
                        DataField="System.Search.AutoSummary" 
                        HeaderText="Summary" />
                </Columns>
            </asp:GridView>
    </asp:Content>
    

    Also bissher wird mir lediglich der SQL Wert in der großen TextBox QuerSql ausgegeben. Aber ich versteh nicht so richtig, wie ich es schaffe das man alles in ein DataGridView ausgibt.
    Die Netzwerkfreigabe habe ich gemacht um dort die WindowsSearch auszuführen.

    Geb es zu, so ganz verstanden habe ich das noch nicht :-/

    Gruß

    Freitag, 21. März 2014 12:57
  • *Push* Brauchei mmer noch Hilfe ... habe es immerhin geschafft alle Daten bzw. einen Teil in der Listbox auszuegeben. Schaffe es abern icht die Daten ans DataGridView zu binden :-/
    Montag, 24. März 2014 07:10
  • *****************************************************************************************************

    Dieser Thread wurde mangels weiterer Beteiligung ohne bestätigte Lösung abgeschlossen.

    Neue Rückfragen oder Ergänzungen zu diesem Thread bleiben weiterhin möglich.

    *****************************************************************************************************


    Ciprian Bogdan, MICROSOFT   Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-PrinzipEntwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.





    Mittwoch, 26. März 2014 12:10